下面是图片上传的方法:
-(void)loadImage:(NSString*)aurl
{
NSData *imageData;
NSMutableData *postBody;
NSString *stringBoundary, *contentType;
NSURL *url = [NSURL URLWithString:aurl]; //将字符串转换为NSURL格式
NSArray *paths = NSSearchPathForDirectori esInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathCom ponent:@"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];
}
标签:postBody,NSUTF8StringEncoding,stringBoundary,IOS,dataUsingEncoding,NSString,appe From: https://blog.51cto.com/u_548275/6238007