我正在尝试使用Alamofire 4.8.2将一系列图像上传到服务器上
功能如下:
func uploadMultiplePhotos(centreId: Int, imagesArray: [UIImage]) {
let parameters = ["ec_id": centreId, "uploaded_image": imagesArray] as [String : Any]
Alamofire.upload(multipartFormData: { (multipartFormData : MultipartFormData) in
let count = imagesArray.count
for i in 0..<count{
multipartFormData.append(imagesArray[i], withName: "photo[\(i)]", fileName: "photo\(i).jpeg", mimeType: "image/jpeg")
}
for (key, value) in parameters {
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
print(multipartFormData)
}, to: storeCentreImageURL) { (result) in
switch result {
case .success(let upload, _ , _):
upload.uploadProgress(closure: { (progress) in
print("uploding: \(progress.fractionCompleted)")
})
upload.responseJSON { response in
print(response.result.value!)
}
case .failure(let encodingError):
print("failed")
print(encodingError)
}
}
}
在下面的行中出现错误:
multipartFormData.append(imagesArray[i], withName: "photo[\(i)]", fileName: "photo\(i).jpeg", mimeType: "image/jpeg")
无法使用类型为'(UIImage,withName:String,fileName:String,mimeType:String)'的参数列表调用'append'
答案 0 :(得分:2)
您需要将图像转换为数据
imagesArray.indices.forEach {
multipartFormData.append(imagesArray[$0].jpegData(compressionQuality:0.8)!, withName: "photo[\($0)]", fileName: "photo\($0).jpeg", mimeType: "image/jpeg")
}