后台的接口数据如下:
接口名称 上传头像
分析: 接口需要传三个参数,file为图片的二进制文件,String类型的phoneId,Integer类型的phoneType
Alamofire上传图片,用于传递参数的类是multipartFormData,利用multipartFormData.appendBodyPart添加参数即可,内部会自动出来参数
private func upload(uploadImage: UIImage,address: String,scale: Double) {
Alamofire.upload(.POST, address, multipartFormData: { (multipartFormData) in
let data = UIImageJPEGRepresentation(uploadImage, scale) let imageName = String(NSDate()) + ".png"
//multipartFormData.appendBodyPart(data:
,name: ,fileName: ,mimeType: )这里把图片转为二进制,作为第一个参数 multipartFormData.appendBodyPart(data: data!, name: "file", fileName: imageName, mimeType: "image/png")
//把剩下的两个参数作为字典,利用 multipartFormData.appendBodyPart(data: name: )添加参数, //因为这个方法的第一个参数接收的是NSData类型,所以要利用 NSUTF8StringEncoding 把字符串转为NSData let param = ["phoneId" : HCUserModel.sharedInstance.phoneId!, "phoneType" : "1"]
//遍历字典 for (key, value) in param { multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key) }
}) { (encodingResult) in switch encodingResult { case .Success(let upload, _, _): upload.responseJSON(completionHandler: { (response) in if let myJson = response.result.value {
if myJson as! NSObject == 0 { print("上传成功") }else { print("上传失败") } } }) case .Failure(let error): print(error) } } } |
|