Last active
September 23, 2018 22:58
-
-
Save izotx/8fee4c3bc9f9c3c6a62d to your computer and use it in GitHub Desktop.
Uploading Image to Server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
static func uploadImage(image:UIImage,token:String, imageType:String, callback:((message:String?, error:String?)->Void))->NSURLSessionTask{ | |
var imageData = UIImagePNGRepresentation(image) | |
var request = NSMutableURLRequest(URL: NSURL(string:APIKeys.url.rawValue)!) | |
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData | |
var session = NSURLSession.sharedSession() | |
request.HTTPMethod = "POST" | |
var boundary = NSString(format: "---------------------------14737809831466499882746641449") | |
var contentType = NSString(format: "multipart/form-data; boundary=%@",boundary) | |
request.addValue(contentType as String, forHTTPHeaderField: "Content-Type") | |
var body = NSMutableData.alloc() | |
// Add | |
body.appendData(NSString(format: "\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(NSString(format:"Content-Disposition: form-data; name=\"add\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData("Test".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!) | |
// Image Internal Type, mime later | |
body.appendData(NSString(format: "\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(NSString(format:"Content-Disposition: form-data; name=\"content_type\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(imageType.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!) | |
// Token | |
body.appendData(NSString(format: "\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(NSString(format:"Content-Disposition: form-data; name=\"tok\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(token.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!) | |
//Other fields | |
body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(NSString(format:"Content-Disposition: form-data; name=\"image\"; filename=\"img\(NSDate()).png\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(NSString(format: "Content-Type: image/png\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) | |
body.appendData(imageData) | |
body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!) | |
request.HTTPBody = body | |
// session.uploadTaskWithRequest(request, fromData: body) | |
// NSURLSessionUploadTask() | |
let task = session.uploadTaskWithRequest(request, fromData: body, completionHandler: { (data, response, error) -> Void in | |
var returnString:String? | |
if let data = data, string = NSString(data: data, encoding: NSUTF8StringEncoding) { | |
returnString = string as String | |
} | |
var errorText:String? | |
if let error = error{ | |
errorText = error.description | |
} | |
callback(message: returnString, error: errorText) | |
}) | |
task.resume() | |
return task | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment