I want to use Alamo fire multipart form data use request, for example, I use upload API
let profile = self.photoView.imageView?.image
let parameters :
In Swift 3 Alamofire 4
This is a demo Code for the Reference
Alamofire.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(UIImageJPEGRepresentation(self.Imgprofile.image!, 1)!, withName: "Prescription", fileName: "Profile_Image.jpeg", mimeType: "image/jpeg")
}, to:" Your URL here ")
{ (result) in
switch result {
case .success(let upload, _, _):
print(result)
upload.uploadProgress(closure: { (progress) in
print(progress)
})
upload.responseJSON { response in
//print response.result
print(response);
}
case .failure(let encodingError):
print(encodingError);
}
}
}
Hope This should Work
Thanks
Please Try This it's working for me for image upload
var parameters = [String:AnyObject]()
let profile = self.photoView.imageView?.image
parameters = ["homePageUrl": webURLField.text as AnyObject,
"nickName": nickNameField.text as AnyObject,
"selfIntro": introField.text as AnyObject]
let imgData = UIImageJPEGRepresentation(profile!, 0.2)!
let uri = Constants.APIURL.changeProfile
let fileName = "\(nickNameField.text!).jpg"
Alamofire.upload(multipartFormData:{ multipartFormData in
multipartFormData.append(imgData, withName: "profile",fileName: fileName, mimeType: "image/jpg")
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
},
usingThreshold:UInt64.init(),
to:uri,
method:.post,
headers:Constants.VyrlAPIConstants.getHeader(),
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
print(response.result.value)
}
case .failure(let encodingError):
print(encodingError)
}
})
if not work then make url with parameter like this.
Alamofire.upload(multipartFormData:{ multipartFormData in
multipartFormData.append(imgData, withName: "profile",fileName: fileName, mimeType: "image/jpg")},
usingThreshold:UInt64.init(),
to:uri + "?" +nickNameField.text! +"?"+ webURLField.text!+"?"+introField.text!,
method:.post,
headers:Constants.VyrlAPIConstants.getHeader(),
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
print(response.result.value)
}
case .failure(let encodingError):
print(encodingError)
}
})