我尝试发送照片和参数,但问题是我想将
JSON数组发送到服务器.似乎Alamofire没有发送数据列表的方法,那么另外一个很好的选择呢?
问题的关键部分是:
var encodedTags: [Data] = tags.map({ return $0.data(using: .utf8)!}) mpd.append(encodedTags,withName: key)
在此上传电话中:
let parameters: [String: Any] = ["username": "TheCooliest",...,"tags": ["KoolKid","TheKooliest","BetterThanKimK"] ... upload(multipartFormData: { (mpd) in mpd.append(url,withName: "file",fileName: "weeknd.jpg") for (key,value) in parameters { if let tags = value as? [String],key == "tags" { var encodedTags = tags.map({ return $0.data(using: .utf8)!}) mpd.append(encodedTags,withName: key) } } }
解决方法
如果你想用Swift 4做,你可以使用新的JSONEncoder.
您可以使用多部分表单数据上传文件和JSON参数:
您可以使用多部分表单数据上传文件和JSON参数:
let image = UIImage(named: "test") let png = UIImagePNGRepresentation(image!)! let arr = ["str1","str2"] let jsonArr = try? JSONEncoder().encode(arr) Alamofire.upload(multipartFormData: { (multiPart) in multiPart.append(png,fileName: "aaa.png",mimeType: "image/png") if let jsonArr = jsonArr { multiPart.append(jsonArr,withName: "pictures") } },to: URL) { (result) in }