views:

75

answers:

1

I am doing some uploading stuff in iphone this time. This is absolutely first time for me.

I have found some useful links and answers by googling and finding them on stackoverflow.

And I was able to upload an image by the following code :

NSData *imageData = UIImageJPEGRepresentation(imageView.image, 90);
    NSString *urlString = @"server-url";
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc]init] autorelease];
    [request setTimeoutInterval:60.0];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];

    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request addValue:contentType forHTTPHeaderField:@"Content-Type"];

    NSMutableData *body = [NSMutableData data];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"file\";filename=\"myfile.jpg\"\r\n"] 
                      dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[NSData dataWithData:imageData]];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    //NSString * dataLength = [NSString stringWithFormat:@"%d", [body length]];
    //[request addValue:dataLength forHTTPHeaderField:@"Content-Length"];

    [request setHTTPBody:body];

    NSLog(@"%@",[[NSString alloc] initWithData:[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil] encoding:NSUTF8StringEncoding]);

But I have lots of questions on the how the above code works like what is boundary and what is the format for it What is content disposition and other things as well .

I have googled a lot for understanding the format for a post request but found nothing then ready code If anyone knows some good tutorial or exmples on how a post request format is build in iphone then please provide so i can understand how the above code will work ?

+1  A: 

you can look at the documentation on returning values from forms with POST here.

http://tools.ietf.org/html/rfc2388

like you said, the code works, this is a document explaining what you see and what it all means

Aaron Saunders
oh great job . I need the the RFC to understand the request . thanks
hib
other references for me :http://en.wikipedia.org/wiki/MIME , an rfc 2046 reading it now .
hib
@hib sometimes you have to read the details to understand what's happening so when there is a bug, you can make sense of it
Aaron Saunders
@Aaron Great thought . absolutely agree with you . :)
hib