我要转换一个包含不同类型数据的大项目,需要作为多部分上传。为此,我创建了几个构建所需MultipartFormData
个对象的结构。
某些上传内容较小,其他内容较大。所以我正在研究使用Alamofire的.upload()
方法(第4节)。
该方法有一个闭包,用于将部分附加到multipartFormData
对象。
Alamofire.upload(
multipartFormData: { multipartFormData in
// do stuff here
}
但我还没有办法将现有的MultipartformData
对象传递给此方法。
应该是这样的:
self.parts = MultipartformData()
...
// do stuff with self.parts
...
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData = self.parts
}
但是,由于我收到以下错误消息,因此无效:
参数可能没有' var'符
我正在使用XCode 8.1,Alamofire 4和Swift 3。
谢谢!
答案 0 :(得分:0)
尝试以下代码:
let image = UIImage.init(named: "myImage")
let imgData = UIImageJPEGRepresentation(image!, 0.2)!
let parameters = ["name": rname]
Alamofire.upload(multipartFormData: { multipartFormData in
multipartFormData.append(imgData, withName: "fileset",fileName: "file.jpg", mimeType: "image/jpg")
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
},
to:"mysite/upload.php")
{ (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (progress) in
print("Upload Progress: \(progress.fractionCompleted)")
})
upload.responseJSON { response in
print(response.result.value)
}
case .failure(let encodingError):
print(encodingError)
}
}