博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用最新的 Alamofire(swift 4.1) (带参数)post方法上传图片到服务器
阅读量:6974 次
发布时间:2019-06-27

本文共 2066 字,大约阅读时间需要 6 分钟。

用最新的 Alamofire(swift 4.1) (带参数)上传图片到服务器

1,准备参数

let image = UIImage(named: "xxx")//将图片转化为JPEG类型的data 后面的参数是压缩比例let jpegImage = UIImageJPEGRepresentation(image!, 0.5)//要传的参数(比如我们带用户的加密uid) let uid = ["uid" : user.uid] let ecodeUid = EncryptionHelper.getParamsString(uid as [String : AnyObject]) //将参赛转化为datalet ecodeData = ecodeUid.data(using: .utf8)

2,开始上传

//全部代码如下Alamofire.upload(multipartFormData: { (multipartFormData) in    multipartFormData.append(ecodeData!, withName: "data")    multipartFormData.append(jpegImage!, withName: "avatar", fileName: "avatar"+".jpeg", mimeType: "image/jpeg")            }, to: "https://www.ka5188.com/app/api/v1/user/uploadImg" , encodingCompletion: { encodingResult in                ws!.hideLoading()                switch encodingResult {                case .success(let upload, _, _):                    upload.responseJSON { response in                        if let data = response.data {                            let responseJson = JSON(data: data)                            if responseJson["status"].intValue == 1 {                                //上传成功,刷新当前头像                                }                            } else {                               let msg = responseJson["msg"].stringValue                               self.showMessage(msg)                            }                        }                    }                case .failure(let encodingError):                    log.debug(encodingError)                    self.showMessage("上传图片失败")                }            })

说明和注意点

//需要注意的地方  multipartFormData.append(ecodeData!, withName: "data")//第一个参数"ecodeData",就是我们加密的二进制uid/第二个参数"data"服务端以这个字段名获取加密的uid(个人以为应该用"uid")multipartFormData.append(jpegImage!, withName: "avatar", fileName: "avatar"+".jpeg", mimeType: "image/jpeg")//带一个参数"jpegImage",就是我们加密的二进制图片流//带二个参数"withName",后台通过西字段来获取图片//带三个参数"fileName",后台检图片类型的,主要是后缀名//带四个参数"mimeType",传输的文件类型。注 : 1,开始由于第二个参数和第三个参数弄混了,导制上传失败      2,由于第三个参数没有加后缀".jpeg",导致后台输出(文件格式不支持)      3,第三个参数mimeType 传入类型是图片      下面给出官方解释,还有我们后台php部分代码
官方解释如下

image

后端代码

image

转载地址:http://odrsl.baihongyu.com/

你可能感兴趣的文章
新型病毒DoubleAgent曝光:攻击计算机前先入侵防病毒软件
查看>>
这款Chrome扩展:能够提升空中WiFi的页面打开速度
查看>>
服务提供商收入下降12% 思科降低Q2财政预期
查看>>
四川信息安全产业今年产值将达400亿元
查看>>
智能安防发展面面观
查看>>
Office Mobile预览版更新17.7369版:Word文档可保存为PDF
查看>>
当SSD真的来敲门,是迎接还是等待?
查看>>
网站制作平台PageCloud获得A轮融资400万美元
查看>>
中盛能源广拓国际市场 约旦光伏电站项目开建
查看>>
2020年我国软件产业收入将突破8万亿元
查看>>
微软为中国政府推出特供版Windows 10,这里有你需要了解的几个事实
查看>>
岗位信息显示英伟达芯片重返苹果Mac电脑
查看>>
Facebook押宝的“聊天机器人”会不会仅是一场泡沫?
查看>>
智慧城市曙光在眼前 实现快速发展发力十要素
查看>>
企业微信入局,移动办公又演化成BAT大战?
查看>>
希捷发布企业级固态硬盘 最高速度可达10GB/s
查看>>
安防监控防雷器选择技巧
查看>>
工作后对单元测试学习的一点总结
查看>>
无线数据传输新纪录达到6Gbps
查看>>
细分差异化,钉钉为何寻求不同CRM厂商合作
查看>>