Skip to content

Instantly share code, notes, and snippets.

@DejanEnspyra
Created July 2, 2017 07:55
Show Gist options
  • Save DejanEnspyra/5bae2a301b2b2bb5de3109344345617f to your computer and use it in GitHub Desktop.
Save DejanEnspyra/5bae2a301b2b2bb5de3109344345617f to your computer and use it in GitHub Desktop.
Alamofire 4 — Multipart file upload with Swift 3 (http://theappspace.com/multipart-file-upload/)
func requestWith(endUrl: String, imageData: Data?, parameters: [String : Any], onCompletion: ((JSON?) -> Void)? = nil, onError: ((Error?) -> Void)? = nil){
let url = "http://google.com" /* your API url */
let headers: HTTPHeaders = [
/* "Authorization": "your_access_token", in case you need authorization header */
"Content-type": "multipart/form-data"
]
Alamofire.upload(multipartFormData: { (multipartFormData) in
for (key, value) in parameters {
multipartFormData.append("\(value)".data(using: String.Encoding.utf8)!, withName: key as String)
}
if let data = imageData{
multipartFormData.append(data, withName: "image", fileName: "image.png", mimeType: "image/png")
}
}, usingThreshold: UInt64.init(), to: url, method: .post, headers: headers) { (result) in
switch result{
case .success(let upload, _, _):
upload.responseJSON { response in
print("Succesfully uploaded")
if let err = response.error{
onError?(err)
return
}
onCompletion?(nil)
}
case .failure(let error):
print("Error in upload: \(error.localizedDescription)")
onError?(error)
}
}
}
@digvijay1331
Copy link

when the app is entered to background API failed, how to handle?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment