原文链接:http://borissun.iteye.com/blog/1338991
原文作者:BorisSun
- (IBAction)upload:(id)sender {
//分界线的标识符
NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";
//根据url初始化request
NSMutableURLRequest* request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:@"http://……"] //这里写上传地址
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10];
//分界线 --AaB03x
NSString *MPboundary=[[NSStringalloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
//结束符 AaB03x--
NSString *endMPboundary=[[NSStringalloc]initWithFormat:@"%@--",MPboundary];
//要上传的图片
UIImage *image=[UIImageimageNamed:@"1.png"];
//得到图片的data
NSData* data =UIImagePNGRepresentation(image);
//http body的字符串
NSMutableString *body=[[NSMutableStringalloc]init];
//参数的集合的所有key的集合
// NSArray *keys= [params allKeys];
//遍历keys
// for(int i=0;i<[keys count];i++)
// {
// //得到当前key
// NSString *key=[keys objectAtIndex:i];
// //如果key不是pic,说明value是字符类型,比如name:Boris
// if(![key isEqualToString:@"pic"])
// {
// //添加分界线,换行
// [body appendFormat:@"%@\r\n",MPboundary];
// //添加字段名称,换2行
// [body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];
// //添加字段的值
// [body appendFormat:@"%@\r\n",[params objectForKey:key]];
// }
// }
添加分界线,换行
[bodyappendFormat:@"%@\r\n",MPboundary];
//声明pic字段,文件名为boris.png
[body appendFormat:@"Content-Disposition: form-data; name=\"pic\"; filename=\"20150624_1.jpg\"\r\n"];
//声明上传文件的格式
[body appendFormat:@"Content-Type: image/png\r\n\r\n"];
//声明结束符:--AaB03x--
NSString *end=[[NSStringalloc]initWithFormat:@"\r\n%@",endMPboundary];
//声明myRequestData,用来放入http body
NSMutableData *myRequestData=[NSMutableDatadata];
//将body字符串转化为UTF8格式的二进制
[myRequestData appendData:[bodydataUsingEncoding:NSUTF8StringEncoding]];
//将image的data加入
[myRequestDataappendData:data];
//加入结束符--AaB03x--
[myRequestData appendData:[enddataUsingEncoding:NSUTF8StringEncoding]];
//设置HTTPHeader中Content-Type的值
NSString *content=[[NSStringalloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
//设置HTTPHeader
[request setValue:contentforHTTPHeaderField:@"Content-Type"];
//设置Content-Length
[request setValue:[NSStringstringWithFormat:@"%d", [myRequestDatalength]] forHTTPHeaderField:@"Content-Length"];
//设置http body
[requestsetHTTPBody:myRequestData];
//http method
[requestsetHTTPMethod:@"POST"];
//建立连接,设置代理
NSURLConnection *conn = [[NSURLConnectionalloc] initWithRequest:requestdelegate:self];
//设置接受response的data
if (conn) {
// mResponseData = [[NSMutableData data] retain];
}
}