iOS-OC-AFNetworking上傳和下載(回撥下載進度)
1.下載檔案
/**
* 下載檔案
*
* @param paramDic 附加post引數
* @param requestURL 請求地址
* @param savedPath 儲存 在磁碟的位置
* @param success 下載成功回撥
* @param failure 下載失敗回撥
* @param progress 實時下載進度回撥
*/
+ (void)downloadFileWithOption:(NSDictionary *)paramDic requestURL:(NSString*)requestURL savedPath:(NSString*)savedPath progress:(void (^)(float progress))progress downloadSuccess:(void (^)(id responseObject))success downloadFailure:(void (^)(NSError *error))failure
{
//事例:NSString *savedPath = [NSHomeDirectory() stringByAppendingString:@"/Documents/xxx.zip"];
AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
NSMutableURLRequest *request =[serializer requestWithMethod:@"POST" URLString:requestURL parameters:paramDic error:nil];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
[operation setOutputStream:[NSOutputStream outputStreamToFileAtPath:savedPath append:NO]];
[operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
float p = (float)totalBytesRead / totalBytesExpectedToRead;
progress(p);
}];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
success(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
[operation start];
}
2.上傳檔案
/**
* 上傳檔案
*
* @param paramDic 附加post引數
* @param requestURL 請求地址
* @param fileData 上傳的檔案
* @param success 上傳成功回撥
* @param failure 上傳失敗回撥
* @param progress 實時上傳進度回撥
*/
+ (void)uploadFileWithOption:(NSDictionary *)paramDic requestURL:(NSString*)requestURL fileData:(NSData*)fileData progress:(void (^)(float progress))progress uploadSuccess:(void (^)(id responseObject))success uploadFailure:(void (^)(NSError *error))failure
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
AFHTTPRequestOperation *operation = [manager POST:requestURL parameters:paramDic constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:fileData name:@"file" fileName:@"filename.jpeg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
success(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
float p = (float)totalBytesWritten / totalBytesExpectedToWrite;
progress(p);
}];
}
相關文章
- HttpWebChilent上傳與下載進度條HTTPWeb
- Android下載檔案(一)下載進度&斷點續傳Android斷點
- ajax 下載Excel 新增回撥函式Excel函式
- 檔案上傳和下載功能
- axios自帶的上傳進度回撥函式iOS函式
- 檔案上傳下載
- ftp下載顯示進度FTP
- 使用osscsdk自定義上傳和下載callback
- 用SecureCRT來上傳和下載資料Securecrt
- mac下iterm2使用rz和sz上傳下載Mac
- 檔案上傳與下載
- JAVA檔案上傳下載Java
- Vertx 檔案上傳下載
- centos上傳下載檔案CentOS
- ajax進度條 非同步下載進度條非同步
- 使用OkHttp實現下載的進度監聽和斷點續傳HTTP斷點
- HTML5 進階系列:檔案上傳下載HTML
- 前端實現檔案下載和拖拽上傳前端
- SpringMVC中的檔案上傳和下載SpringMVC
- 面試題:上傳和下載怎麼測試?面試題
- Java Struts檔案上傳和下載詳解Java
- 基於servlet的檔案上傳和下載Servlet
- koa2基於stream(流)進行檔案上傳和下載
- Java SFTP 上傳、下載等操作JavaFTP
- 檔案的上傳與下載
- JAVA中使用FTPClient上傳下載JavaFTPclient
- springboot 中檔案的上傳和下載Spring Boot
- linux安裝rz和sz上傳下載命令Linux
- ftp上傳工具下載,ftp上傳工具下載使用教程,Linux如何配置ftp伺服器?FTPLinux伺服器
- minio檔案上傳與下載
- springboot 檔案上傳下載Spring Boot
- 檔案上傳下載小工具
- java 上傳 下載檔案工具類Java
- 檔案下載上傳小工具
- spring webflux檔案上傳下載SpringWebUX
- iterm2上傳下載檔案
- 使用Thread打造上傳下載器thread
- 從ftp上傳下載檔案(二)FTP