我想使用Alamofire上传多个图片到服务器。
所有工作都很好,但是只有一个图片被上传。我需要上传多个或更多的图片,具体取决于登录用户。我正在使用一个名为DKImagePickerController
的库从图库或相机中选择图片。
func upload() {
//shortcuts
let id = userr.integer(forKey: "id")
let plateId = plateIdTextField.text!
let customerName = customerNameTextField.text!
let customerContact = customerContactTextField.text!
let package = radioButtonsController.selectedIndex + 1
var parameters: [String: Any]
parameters = ["user_id": id,
"package": package,
"plate_id": plateId,
"customer_name": customerName,
"customer_contact": customerContact]
let spinningActivity = MBProgressHUD.showAdded(to: self.view, animated: true)
spinningActivity?.labelText = "uploading.."
spinningActivity?.detailsLabelText = "Please wait"
Alamofire.upload(multipartFormData: { multipartFormData in
for fileImage in self.fileUIImage {
multipartFormData.append(UIImagePNGRepresentation(fileImage)!, withName: "image", fileName:"image.png", mimeType: "image/png")
}
for (key, value) in parameters {
multipartFormData.append("\(value)".data(using: String.Encoding.utf8)!, withName: key as String)
}
},
to: uploadURL,
method: HTTPMethod(rawValue: "POST")!,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
//Unpacking
guard let result = response.result.value else { return }
spinningActivity!.hide(true)
print("\(result)")
self.BackToHomePage()
}
case .failure(let encodingError):
print(encodingError)
}
})
}
.post
代替HTTPMethod(rawValue: "POST")!
。这样可以减少语法噪音并避免简单的排版错误。 - Rob