iOS_文件上传进度条的实现思路-AFNettworking

摘要:
iOS_文件上传进度条的实现思想-AFNetworking//要上传的文件名。这里我使用当前日期作为文件名NSString*fileName=[NSStringstringWithFormat:@“%ld”,(long)[NSDatenew]。timeIntervalSince1970]//要上载NSData*data的文件=[NSDatadataWithContentsOfFile:[
 

iOS_文件上传进度条的实现思路-AFNettworking

  1. //要上传的文件名,在这里我使用当前日期做为文件的名称  
  2.       NSString * fileName =[NSString stringWithFormat:@"%ld", (long)[NSDatenew].timeIntervalSince1970];  
  3.       //要上传的文件   
  4.       NSData * data = [NSData dataWithContentsOfFile:[XXXXXXXX]];  
  5.           //下面的dic就是一些其他的参数,没有就不要了   
  6.             NSDictionary *dic = @{@"jsessionid": [User shareUser].sessionID,@"to":[UsershareUser].userID,@"fromUserId":self.toUserID,@"second":@((int)recorder.currentTime)};  
  7.         
  8.      // 接口的 AFHTTPSession 不能提供一种方法来设置进度块。相反,必须进行以下操作:  
  9.       // 1. 创建一个 `AFHTTPRequestSerializer`,利用此对象可以创建一个request请求.  
  10.       AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];  
  11.         
  12.       // 2. 获取一个`NSMutableURLRequest`对象.  
  13.       NSMutableURLRequest *request =  
  14.       [serializer multipartFormRequestWithMethod:@"POST"//请求方法为post  
  15.                                        URLString:@"http://xxx.xxx.xxx.xx"//上传文件URL  
  16.                                       parameters:dic//上传的其他参数  
  17.                        constructingBodyWithBlock:^(id<AFMultipartFormData> formData)//设置请求体  
  18.       {  
  19.                         [formData appendPartWithFileData:data//音乐媒体文件的data对象  
  20.                                                                   name:@"multipartFile"//与数据关联的参数名称,不能为nil  
  21.                                                               fileName:fileName//上传的文件名,不能为nil  
  22.                                                               mimeType:@"audio/mp4"];//MIME类型(例如:图片为image/jpeg.) 可以参照 http://www.iana.org/assignments/media-types/. ,不能为nil  
  23.       } error:&playerError];//playerError为错误对象  
  24.       // 3. 创建并使用 `AFHTTPRequestOperationManager`,然后创建一个异步请求操作对象`AFHTTPRequestOperation`,这个对象执行时会发送刚刚创建的`NSMutableURLRequest`请求.  
  25.       AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
  26.       AFHTTPRequestOperation *operation =  
  27.       [manager HTTPRequestOperationWithRequest:request  
  28.                                        success:^(AFHTTPRequestOperation *operation, id responseObject) {  
  29.                                            NSLog(@"Success %@", responseObject);//上传成功后的语句块  
  30.                                        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  31.                                            NSLog(@"Failure %@", error.description);//上传失败的语句块  
  32.                                        }];  
  33.         
  34.       // 4. 设置上传进度块.  
  35.       [operation setUploadProgressBlock:^(NSUInteger __unused bytesWritten,  
  36.                                           long long totalBytesWritten,//已上传的字节数  
  37.                                           long long totalBytesExpectedToWrite)//总字节数  
  38.       {  
  39.           //每次上传一部分数据,都会调用此块输出进度,可以在此方法中设置你的上传进度条页面  
  40.           NSLog(@"Wrote %lld/%lld", totalBytesWritten, totalBytesExpectedToWrite);  
  41.       }];  
  42.       //5. 开始上传任务  
  43.       [operation start];  
 

免责声明:文章转载自《iOS_文件上传进度条的实现思路-AFNettworking》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用HttpRunner3+Allure+Jenkins实现Web接口自动化测试重写onBackPressed方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

爬虫发起抓取被服务器拒绝访问返回403禁止访问解决方案

目前,许多网站的API接口返回的http代码返回代码为403,表示禁止访问。如果您也遇到这种情况,请不要急于首先修改网站的相关参数,即高级api的网站。使用浏览器访问。如果浏览器访问api接口,它可以成功。表示已设置权限。接口可能已被修改或无效,此时无法访问。调用此接口时,将捕获异常中的responseBody。数据很可能在该区域。这就是作者遇到的问题。直接...

Jdk升级到11引起的问题:程序包javax.xml.bind.annotation不存在

您可以看到ELDict类中有一个引用:importjavax。xml。绑定注释XmlAttribute;虽然未使用,但它会导致mvn编译错误。在在线绑定中搜索“包javax.xml.bind.nannotation不存在”。结果是:包javax。xml。bind Annotation不存在-CSDN论坛2009年12月2日·无法编译使用jaxb的类,因为软件...

微信小程序知识点总结--组件

aspectFill缩放模式保持缩放图像的纵横比,并且只能完全显示图像的短边。也就是说,图片通常只在水平或垂直方向上是完整的,而另一个方向会被截取。...

【01】如何在XMind中排列自由主题

如何在XMind中安排免费主题。在XMind思维导图软件中,用户可以根据需要添加免费主题。然而,由于自由主题的灵活性,它并不整洁,与需要控制界面有序排列的用户相比,这会造成一定的麻烦。首先选择要组织的所有免费主题,单击,然后在下拉框中选择以安排免费主题。有六种排列方式:左对齐、垂直居中、右对齐、顶部对齐、水平居中和底部对齐。...

(转)JavaScript-性能优化之函数节流(throttle)与函数去抖(debounce)

简单来说,JavaScript性能优化的函数节流和函数去抖动功能节流就是使函数在极短的时间间隔内无法连续调用。下一个函数调用只能在上次函数执行超过指定的时间间隔后进行。对于这两个需求,有两种解决方案:去抖动和节流。Throwle和debouck是解决请求和响应速度不匹配问题的两种解决方案。抛出以相等的间隔执行函数。如果事件在反跳时间间隔t内再次触发,则将再次...

IntelliJ idea设置显示错误代码提示

idea默认关闭自动编译,所以一些编译错误只有在编译的时候才会提示,例如修改了引用类。按图中设置打开自动编译:注意:idea默认打开省电模式,自动编译在省电模式下被禁用,所以需要在file˃powersavemode关闭省电模式。...