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

iOS_文件上传进度条的实现思路-AFNettworking的更多相关文章

  1. HTML5矢量实现文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  2. 基于HT for Web矢量实现HTML5文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  3. PHP中使用Session配合Javascript实现文件上传进度条功能

    Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP .4以前,实现这样的进度条并不容易 ...

  4. asp.net文件上传进度条研究

    文章:asp.net 文件上传进度条实现代码

  5. Layui多文件上传进度条

    Layui原生upload模块不支持文件上传进度条显示,百度,谷歌找了一下不太适用.后面找到一个别人修改好的JS,替换上去,修改一下页面显示即可使用,一下是部分代码 HTML: <div cla ...

  6. spring定时任务-文件上传进度条

    spring定时任务 导依赖 <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dep ...

  7. 利用Bootstrap简单实现一个文件上传进度条

    © 版权声明:本文为博主原创文章,转载请注明出处 说明: 1. 使用commons-fileupload.jar实现文件上传及进度监听 2. 使用bootstrap的进度条进行页面显示 3. 因为进度 ...

  8. vue多文件上传进度条 进度不更新问题

    转自 hhttp://www.cnblogs.com/muge10/p/6767493.html 感谢这位兄弟的文章,之前因为这个问题 ,我连续在sgmentflow上提问过多次,完全没人能回答.谢谢 ...

  9. layui文件上传进度条(模拟)

    1.修改上传组件js(没测) https://blog.csdn.net/weixin_42457316/article/details/81017471 https://www.cnblogs.co ...

随机推荐

  1. [Android Studio] Android Studio使用教程(二)

    以下是本次Google I/O大会发布的IDE Android Studio使用教程第二篇: 在Android Studio使用教程(一)中简要介绍了Android Studio的基本使用,包括安装. ...

  2. 用C语言实现面向对象的开发

    C语言的对象化模型 面向对象的特征主要包括: .封装,隐藏内部实现 .继承,复用现有代码 .多态,改写对象行为 采用C语言实现的关键是如何运用C语言本身的特性来实现上述面向对象的特征. 1.1 封装 ...

  3. VMware ESXi 5.5无法与Windows 2012 NTP Server同步时间

    这次笔者需要面对的环境对时间的同步有比较高的要求, 而虚拟化的环境中时间是比较容易出问题的, 您可以参考上一篇博文为什么Domain controller上的time synchronization非 ...

  4. 如何用代码方式获取Web.config中system.serviceModel/client节点的address

    以下代码GetAPIAddress将返回:http://localhost:2555/APITEST.asmx using System.Web.Configuration;using System. ...

  5. 走进C++程序世界------异常处理

    一. 概述 C++自身有着很强的纠错能力,发展到现在,已经建立了比較完好的异常处理机制. C++的异常情况无非两种,一种是语法错误.即程序中出现了错误的语句,函数.结构和类,致使编译程序无法进行.还有 ...

  6. C#应用视频教程3.1 USB工业相机测试

    图像处理是工控很有价值的一个领域,比如人脸识别,车牌识别,还有产品的位置识别,瑕疵检测,对于个人学习来说,我们无法直接上手几万块的成熟工业相机(高端的康耐视要6万左右,而且是黑白的,要测试一些带颜色的 ...

  7. vscode - 移动端适配(cssrem)

    建议使用Chrome浏览器. 1.第一步,安装扩展以及配置 2.第二步,使用(记得按一下↓)

  8. 使用Visual Studio 2017编译opencv 3.2版本

    一.背景介绍 opencv是一个很强大的开源的计算机视觉库,应用领域如人机互动,图像处理,人脸识别,和现实生活中智能设计的关系很紧密.现在官方提供的编译包中,c++的只提供了x64位的library, ...

  9. Python 创建特殊元组tuple

    创建1个元素的tuple  (1,) 创建单元素tupletuple和list一样,可以包含 0 个.1个和任意多个元素.包含多个元素的 tuple,前面我们已经创建过了.包含 0 个元素的 tupl ...

  10. 用css3选择器给你要的第几个元素添加不同样式方法【转发】

    下面我们来了解一下css选择器里面的几个 :only-child p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素. 3 :nth-child(n) p:nth- ...