Skip to content

Instantly share code, notes, and snippets.

@gulfcoastdev
Last active September 23, 2018 22:58
Show Gist options
  • Select an option

  • Save gulfcoastdev/8fee4c3bc9f9c3c6a62d to your computer and use it in GitHub Desktop.

Select an option

Save gulfcoastdev/8fee4c3bc9f9c3c6a62d to your computer and use it in GitHub Desktop.

Revisions

  1. gulfcoastdev revised this gist Oct 1, 2015. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions upload.swift
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,7 @@
    static func uploadImage(image:UIImage,token:String, imageType:String, callback:((message:String?, error:String?)->Void))->NSURLSessionTask{

    var imageData = UIImagePNGRepresentation(image)
    imageData = NSData(data: image)


    var request = NSMutableURLRequest(URL: NSURL(string:APIKeys.url.rawValue)!)
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData

  2. gulfcoastdev revised this gist Oct 1, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion upload.swift
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    static func uploadImage(image:UIImage,token:String, imageType:String, callback:((message:String?, error:String?)->Void))->NSURLSessionTask{

    var imageData = UIImagePNGRepresentation(savedImage)
    var imageData = UIImagePNGRepresentation(image)
    imageData = NSData(data: image)

    var request = NSMutableURLRequest(URL: NSURL(string:APIKeys.url.rawValue)!)
  3. gulfcoastdev revised this gist Oct 1, 2015. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions upload.swift
    Original file line number Diff line number Diff line change
    @@ -21,7 +21,7 @@
    body.appendData(NSString(format:"Content-Disposition: form-data; name=\"add\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
    body.appendData("Test".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)

    // Image Type
    // 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)!)
    @@ -31,10 +31,10 @@
    body.appendData(NSString(format:"Content-Disposition: form-data; name=\"tok\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
    body.appendData(token.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)

    // println("request \(request)")

    //Other fields

    // Image Content-Transfer-Encoding: binary

    body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)


  4. gulfcoastdev created this gist Oct 1, 2015.
    70 changes: 70 additions & 0 deletions upload.swift
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,70 @@
    static func uploadImage(image:UIImage,token:String, imageType:String, callback:((message:String?, error:String?)->Void))->NSURLSessionTask{

    var imageData = UIImagePNGRepresentation(savedImage)
    imageData = NSData(data: 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 Type
    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)!)

    // println("request \(request)")
    //Other fields

    // Image Content-Transfer-Encoding: binary
    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
    }