【发布时间】:2018-05-31 01:15:04
【问题描述】:
我想使用 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)
}
})
}
【问题讨论】:
-
完全不相关,而不是
HTTPMethod(rawValue: "POST")!,您可以使用.post。减少语法噪音并避免出现简单的印刷错误。
标签: swift alamofire multipartform-data