天天看點

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]];

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]];

stringWithFormat:@"Content-Disposition: form-data; name=\"upload\";

filename=\"%@\"\r\n",imageFileName]

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

    [postBody appendData:imageData];

        [postBody appendData:[[NSString

stringWithFormat:@"\r\n--%@\r\n", stringBoundary]

name=\"password\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

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

    [aRequest setDelegate:self];

        [aRequest appendPostData:postBody];

    [aRequest setRequestMethod:@"POST"];  

    [aRequest startAsynchronous];

        [postBody release];

    [aRequest release];

}