ios-Alamofire上传文件
来源:互联网 发布:淘宝商城一年费用多少 编辑:程序博客网 时间:2024/06/16 16:18
在Alamofire中上传文件其实相比较AFN文件中难了很多,复杂了很多,应该是作者也为了保证链式响应这个特点,所以我们用起来就得一步一步跟着官方文档去做。代码如下
这里先附上官方文档对于文件上传的解释,第一个仅仅是上传了一个二进制数据,第二个是获取文件的url,然后把文件进行上传,第三个就是拼接二进制数据,然后再进行上传
解释下我们这里要上传文件的话就要去拼接数据,这里拼接数据是有讲究的,因为我们需要知道拼接数据是拼接文件还是说拼接和文件一起上传的字典的参数,如果我们是要上传文件的话append方法中就需要带有mimeType,如果我们要上传参数的话,比如说一些字符串就是选择不带mimeType的。因为我们如果知道文件上传的形式的话就会知道,如果我们上传的是上传文件携带的参数的话是没有Content-Type: #{mimeType}` (HTTP Header)的。而如果上传的是文件都是有Content-Type的,所以我们可以根据这个来判断
Alamofire.upload(multipartFormData: { (formData) in //拼接上传文件的二进制数据 formData.append(data, withName: name, fileName: "picture", mimeType:"multipart/form-data") //遍历参数字典,生产对应的参数数据 if let par = par { for (key,value) in par { let str = value as! String //把字符串编码成二进制文件 let strData = str.data(using:String.Encoding.utf8)! //拼接二进制数据 formData.append(strData, withName: key) } } }, usingThreshold: (5*1024*1024), to: URL(string:URLString)!, method:HTTPMethod.post) { (encodingResult) in switch encodingResult { case .success(let request,_,_): request.responseJSON(completionHandler: { (response) in //判断是否失败了 //判断是否发生了错误 if response.result.isFailure { print("网络请求失败 \(response.result.error)") } //根据返回的数据进行回调 finished(response.result.value, response.result.error) }) case .failure(let error): print("上传文件编码错误\(error)") } }
阅读全文
0 0
- ios-Alamofire上传文件
- iOS使用Alamofire上传文件问题
- <iOS>Alamofire的使用
- IOS alamofire网络请求
- swift利用Alamofire上传图片
- Alamofire 图片带参数 上传
- 【IOS开发】swift版的AFNETworking之Alamofire的用法 图片上传
- Swift使用Alamofire上传图片等FormData表单文件的方法
- iOS 高级网络之Alamofire
- ios-Alamofire的简单使用
- Alamofire
- ios文件上传
- 【iOS】文件上传小记
- ios 文件上传
- ios文件上传
- 多文件上传 iOS
- iOS AFNetWorking上传文件
- ios 文件上传
- 【HDU】2063 过山车 二分图匹配
- group by 语句分组结果为1条或没有结果
- Trie树
- NGINX作为WebSocket代理
- SQL Server基础(二)
- ios-Alamofire上传文件
- RecycleView的相关监听
- 三元组(稀疏矩阵的转置)
- bzoj 1634: [Usaco2007 Jan]Protecting the Flowers 护花
- POJ 1085 Triangle War 博弈 (对抗搜索 alpha-beta 剪枝)
- java的认识
- html 开发工具
- 周末训练笔记+hdu1255+4288
- RecyclerView加载数据进行展示