iOS_文件上传进度条的实现思路-AFNettworking
iOS_文件上传进度条的实现思路-AFNettworking
- //要上传的文件名,在这里我使用当前日期做为文件的名称
- NSString * fileName =[NSString stringWithFormat:@"%ld", (long)[NSDatenew].timeIntervalSince1970];
- //要上传的文件
- NSData * data = [NSData dataWithContentsOfFile:[XXXXXXXX]];
- //下面的dic就是一些其他的参数,没有就不要了
- NSDictionary *dic = @{@"jsessionid": [User shareUser].sessionID,@"to":[UsershareUser].userID,@"fromUserId":self.toUserID,@"second":@((int)recorder.currentTime)};
- // 接口的 AFHTTPSession 不能提供一种方法来设置进度块。相反,必须进行以下操作:
- // 1. 创建一个 `AFHTTPRequestSerializer`,利用此对象可以创建一个request请求.
- AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
- // 2. 获取一个`NSMutableURLRequest`对象.
- NSMutableURLRequest *request =
- [serializer multipartFormRequestWithMethod:@"POST"//请求方法为post
- URLString:@"http://xxx.xxx.xxx.xx"//上传文件URL
- parameters:dic//上传的其他参数
- constructingBodyWithBlock:^(id<AFMultipartFormData> formData)//设置请求体
- {
- [formData appendPartWithFileData:data//音乐媒体文件的data对象
- name:@"multipartFile"//与数据关联的参数名称,不能为nil
- fileName:fileName//上传的文件名,不能为nil
- mimeType:@"audio/mp4"];//MIME类型(例如:图片为image/jpeg.) 可以参照 http://www.iana.org/assignments/media-types/. ,不能为nil
- } error:&playerError];//playerError为错误对象
- // 3. 创建并使用 `AFHTTPRequestOperationManager`,然后创建一个异步请求操作对象`AFHTTPRequestOperation`,这个对象执行时会发送刚刚创建的`NSMutableURLRequest`请求.
- AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
- AFHTTPRequestOperation *operation =
- [manager HTTPRequestOperationWithRequest:request
- success:^(AFHTTPRequestOperation *operation, id responseObject) {
- NSLog(@"Success %@", responseObject);//上传成功后的语句块
- } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
- NSLog(@"Failure %@", error.description);//上传失败的语句块
- }];
- // 4. 设置上传进度块.
- [operation setUploadProgressBlock:^(NSUInteger __unused bytesWritten,
- long long totalBytesWritten,//已上传的字节数
- long long totalBytesExpectedToWrite)//总字节数
- {
- //每次上传一部分数据,都会调用此块输出进度,可以在此方法中设置你的上传进度条页面
- NSLog(@"Wrote %lld/%lld", totalBytesWritten, totalBytesExpectedToWrite);
- }];
- //5. 开始上传任务
- [operation start];
iOS_文件上传进度条的实现思路-AFNettworking的更多相关文章
- HTML5矢量实现文件上传进度条
在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...
- 基于HT for Web矢量实现HTML5文件上传进度条
在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...
- PHP中使用Session配合Javascript实现文件上传进度条功能
Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP .4以前,实现这样的进度条并不容易 ...
- asp.net文件上传进度条研究
文章:asp.net 文件上传进度条实现代码
- Layui多文件上传进度条
Layui原生upload模块不支持文件上传进度条显示,百度,谷歌找了一下不太适用.后面找到一个别人修改好的JS,替换上去,修改一下页面显示即可使用,一下是部分代码 HTML: <div cla ...
- spring定时任务-文件上传进度条
spring定时任务 导依赖 <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dep ...
- 利用Bootstrap简单实现一个文件上传进度条
© 版权声明:本文为博主原创文章,转载请注明出处 说明: 1. 使用commons-fileupload.jar实现文件上传及进度监听 2. 使用bootstrap的进度条进行页面显示 3. 因为进度 ...
- vue多文件上传进度条 进度不更新问题
转自 hhttp://www.cnblogs.com/muge10/p/6767493.html 感谢这位兄弟的文章,之前因为这个问题 ,我连续在sgmentflow上提问过多次,完全没人能回答.谢谢 ...
- layui文件上传进度条(模拟)
1.修改上传组件js(没测) https://blog.csdn.net/weixin_42457316/article/details/81017471 https://www.cnblogs.co ...
随机推荐
- GPGPU OpenCL Reduction操作与group同步
Reduction操作:规约操作就是由多个数生成一个数,如求最大值.最小值.向量点积.求和等操作,都属于这一类操作. 有大量数据的情况下,使用GPU进行任务并行与数据并行,可以收到可好的效果. gro ...
- TensorFlow目标检测(object_detection)api使用
https://github.com/tensorflow/models/tree/master/research/object_detection 深度学习目标检测模型全面综述:Faster R-C ...
- 解决vuex在页面刷新后数据丢失的问题
一.原因 js代码是运行在内存中的,代码运行时的所有变量.函数也都是保存在内存中的. 刷新页面,以前申请的内存被释放,重新加载脚本代码,变量重新赋值,所以这些数据要想存储就必须存储在外部,例如:Loc ...
- 缩进与对齐——正确地使用Tab和空格
写代码时大家都会使用缩进(indentation)和对齐(alignment),这是两个相关而又不同的概念,两者都是为了提高代码的可读性.缩进出现在一行的最左边,目的是明显地区分开包含与被包含的代码: ...
- java学习笔记10--泛型总结
java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5-- ...
- (转)[ActionScript 3] Google-ProtoBuf for AS
最近由于项目的需要,研究了一下protobuf.在这里分享一下经验,具体介绍网上也有不少,可以百度先了解一下. ProtoBuf在as中主要就是序列反序列化的作用,我们主要用它来代替amf,因为像c+ ...
- python 网络请求类库 requests 使用
python 网络请求类库 requests 使用 requests是 为python封装的强大 REST 操作类库 githubhttps://github.com/kennethreitz/req ...
- Android工程内嵌Flutter
本文记录一下Android主工程中嵌入部分Fluttter页面的实现方法. 创建一个Android工程模拟你的现有工程 为了让Android工程和Flutter工程互不干扰,这里不再以Android工 ...
- MSCRM 2011 JavaScript 开发文档
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- 解决Html.CheckBoxFor中”无法将类型 bool 隐式转换为 bool。存在一个显式转换..."的方法
在后面加.Value属性 @Html.CheckBoxFor(m => m.IsComment.Value, new { style = "vertical-align: middle ...