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函式
- servlet上傳下載Servlet
- 檔案上傳下載
- springboot 中檔案的上傳和下載Spring Boot
- maven私服上傳和下載包的配置Maven
- mac下iterm2使用rz和sz上傳下載Mac
- JAVA檔案上傳下載Java
- springboot 檔案上傳下載Spring Boot
- 檔案上傳與下載
- 前端實現檔案下載和拖拽上傳前端
- koa2基於stream(流)進行檔案上傳和下載
- 檔案的上傳與下載
- Java SFTP 上傳、下載等操作JavaFTP
- 上傳下載相關問題
- 使用SecureCRT上傳下載檔案Securecrt
- minio檔案上傳與下載
- a標籤與Blob下載檔案的區別和獲取檔案下載進度
- ftp上傳工具下載,ftp上傳工具下載使用教程,Linux如何配置ftp伺服器?FTPLinux伺服器
- spring cloud feign 檔案上傳和檔案下載SpringCloud
- Python展示檔案下載進度條Python
- Xshell在Windows和Linux間檔案的上傳和下載WindowsLinux
- Spring Boot 檔案上傳與下載Spring Boot
- xshell 使用 sftp上傳下載檔案FTP
- springcloud中feign檔案上傳、下載SpringGCCloud
- Feign實現檔案上傳下載
- java 上傳 下載檔案工具類Java
- 檔案下載上傳小工具
- 檔案上傳下載小工具
- Node + Express 後臺開發 —— 上傳、下載和釋出Express
- Android 史上最優雅的實現檔案上傳、下載及進度的監聽Android
- C#如何使用HttpClient對大檔案進行斷點上傳和下載C#HTTPclient斷點
- Jmeter 介面自動化連載 (14) - 上傳與下載JMeter
- iTerm2下配置ssh自動登入和使用lrzsz上傳下載
- element plus下載進度增加遮罩層loading遮罩
- SpringBoot系列——附件管理:整合業務表單實現上傳、回顯、下載Spring Boot
- Qt5.X FTP上傳與下載QTFTP