1. 程式人生 > >iOS上傳圖片的方法

iOS上傳圖片的方法

下面是圖片上傳的方法:

-(void)loadImage:(NSString*)aurl
{
        NSData              *imageData;
        NSMutableData       *postBody;
        NSString            *stringBoundary, *contentType;
        NSURL *url = [NSURL URLWithString:aurl];  //將字串轉換為NSURL格式

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"1.jpg"];

    imageData = [[NSData alloc] initWithContentsOfFile:path];

        ASIFormDataRequest *aRequest = [[ASIFormDataRequest alloc] initWithURL:url]; 

        stringBoundary = [NSString stringWithString:@"0xKhTmLbOuNdArY"];


    contentType    = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", stringBoundary];

        [aRequest addRequestHeader:@"Content-Type" value:contentType];

        postBody = [[NSMutableData alloc] init];

    [postBody appendData:[[NSString stringWithFormat:@"\r\n\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];


    [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"title\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithString:@"lighttable"] dataUsingEncoding:NSUTF8StringEncoding]];  // So Light Table show up as source in Twitter post

    NSString *imageFileName = [NSString stringWithFormat:@"photo.jpeg"];

    [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"upload\"; filename=\"%@\"\r\n",imageFileName] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

    [postBody appendData:imageData];

        [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];

        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"password\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithString:@"lighttablexxxxxxxx"] dataUsingEncoding:NSUTF8StringEncoding]];  

        [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [aRequest setDelegate:self];

        [aRequest appendPostData:postBody];

    [aRequest setRequestMethod:@"POST"];  

    [aRequest startAsynchronous];

        [postBody release];
    [aRequest release];
}