-
-
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 | |
} | |
}]; |
God bless you.
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
Thanks :D