-
-
Save mombrea/8467128 to your computer and use it in GitHub Desktop.
| NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"REST URL PATH"]]; | |
| NSData *imageData = UIImageJPEGRepresentation(image, 1.0); | |
| [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; | |
| [request setHTTPShouldHandleCookies:NO]; | |
| [request setTimeoutInterval:60]; | |
| [request setHTTPMethod:@"POST"]; | |
| NSString *boundary = @"unique-consistent-string"; | |
| // set Content-Type in HTTP header | |
| NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; | |
| [request setValue:contentType forHTTPHeaderField: @"Content-Type"]; | |
| // post body | |
| NSMutableData *body = [NSMutableData data]; | |
| // add params (all params are strings) | |
| [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; | |
| [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=%@\r\n\r\n", @"imageCaption"] dataUsingEncoding:NSUTF8StringEncoding]]; | |
| [body appendData:[[NSString stringWithFormat:@"%@\r\n", @"Some Caption"] dataUsingEncoding:NSUTF8StringEncoding]]; | |
| // add image data | |
| if (imageData) { | |
| [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; | |
| [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=%@; filename=imageName.jpg\r\n", @"imageFormKey"] dataUsingEncoding:NSUTF8StringEncoding]]; | |
| [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; | |
| [body appendData:imageData]; | |
| [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; | |
| } | |
| [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; | |
| // setting the body of the post to the reqeust | |
| [request setHTTPBody:body]; | |
| // set the content-length | |
| NSString *postLength = [NSString stringWithFormat:@"%d", [body length]]; | |
| [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; | |
| [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { | |
| if(data.length > 0) | |
| { | |
| //success | |
| } | |
| }]; |
hi, thanks for posting the code. i am sticking with 2 questions:
- what exactly is the object "image"
- name=%@; filename=imageName.jpg\r\n" => if we are selecting image from device library then what will replace the "imageName.jpg"?
Thanks much for your help
Thank you 😄 This helped me a lot.
What to do in case of video ?
How to upload video with multipart?
Finally it worked, thank you for your code, I had extra "s 👯
Thank you very much!
Thanks. worked like charm.
Thanks a lot..
its working fine.
very useful!
Hi. Thanks for the example. Works well.
Im facing issues uploading multiple images using the above code. It only accepts the first image. #ios
Please help to execute this code for multiple images
What if i want to upload gif (to Giphy.com)?
Awesome! So simplistic.
Great!
Thank you, you have just saved me from using AFNetworking and/or others. I'm facing an issue now with the HTTP Body - too long when trying to upload a huge gif file. :(
@Asha149 did you find any solution?
and can we upload an array of images to server? using NSURLConnection
What if you want to post a video using multipart/form-data ?
Thanks man! You saved me...
Thank you! You saved my day
God bless you.