- (void)downloadFileFromPath:(NSString *)path withParams:(NSDictionary *)params andFileName:(NSString *)fileName progress:(KSUploadProgress)progress finished:(KSFinishedBlock)finished failed:(KSFailedBlock)failed
{
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:path parameters:params error:nil];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:^(NSProgress *downloadProgress){
if (progress) {
progress(downloadProgress);
}
}destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
if (fileName && fileName.length > 0) {
return [documentsDirectoryURL URLByAppendingPathComponent:fileName];
}else{
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
}
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
if (!error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
if (httpResponse.statusCode == 200) {
// 下载成功返回保存本地的地址
finished(@{@"filePath":filePath});
} else {
failed([NSString stringWithFormat:@"%@",@(httpResponse.statusCode)]);
}
} else {
failed(error.description);
}
}];
[downloadTask resume];
}
iOS 下载文件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 在项目里遇到附件的下载和本地查看功能,附件有可能是word pdf 图片 Excel表格 甚至是ppt 有点变态吧...
- iOS开发中经常会用到文件的下载与上传功能,今天咱们来分享一下文件下载的思路。文件上传下篇再说。 文件下载分为小文...