- (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];
}
网友评论