ios多图片上传
来源:互联网 发布:ftp yum 源安装 编辑:程序博客网 时间:2024/06/06 02:33
-(NSDictionary *)PostImagesToServer:(NSString *)strUrl dicPostParams:(NSMutableDictionary *)params dicImages:(NSMutableDictionary *) dicImages andImgName:(NSDictionary*)dicImgName
{
//分界线的标识符
NSString *TWITTERFON_FORM_BOUNDARY =@"AaB03x";
//根据url初始化request
//NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strUrl] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
// NSURL *urlStr = [NSURL URLWithString:strUrl];
NSURL* ur = [NSURLURLWithString:strUrl];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:ur];
//分界线 --AaB03x
NSString *MPboundary=[[NSStringalloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
//结束符 AaB03x--
NSString *endMPboundary=[[NSStringalloc]initWithFormat:@"%@--",MPboundary];
//要上传的图片
UIImage *image;//=[params objectForKey:@"pic"];
//得到图片的data
//NSData* data = UIImagePNGRepresentation(image);
//http body的字符串
NSMutableString *body=[[NSMutableStringalloc]init];
//参数的集合的所有key的集合
NSArray *keys= [paramsallKeys];
//遍历keys
for(int i=0;i<[keyscount];i++) {
//得到当前key
NSString *key=[keysobjectAtIndex:i];
//如果key不是pic,说明value是字符类型,比如name:Boris
//if(![key isEqualToString:@"pic"]) {
//添加分界线,换行
[bodyappendFormat:@"%@\r\n",MPboundary];
//添加字段名称,换2行
[body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];
//[body appendString:@"Content-Transfer-Encoding: 8bit"];
//添加字段的值
[bodyappendFormat:@"%@\r\n",[paramsobjectForKey:key]];
//}
}
////添加分界线,换行
//[body appendFormat:@"%@\r\n",MPboundary];
//声明myRequestData,用来放入http body
NSMutableData *myRequestData=[NSMutableDatadata];
//将body字符串转化为UTF8格式的二进制
[myRequestData appendData:[bodydataUsingEncoding:NSUTF8StringEncoding]];
//循环加入上传图片
keys = [dicImagesallKeys];
for(int i =0; i< [keyscount] ; i++){
//要上传的图片
image = [dicImagesobjectForKey:[keysobjectAtIndex:i ]];
//得到图片的data
NSData* data = UIImageJPEGRepresentation(image,0.0);
float f =1.0;
while ([datalength] >500000 && f >=0.05) {
f = f -0.2;
data =UIImageJPEGRepresentation(image, f);
NSLog(@"IMG LENGHT 3:%uld",[datalength]);
}
NSMutableString *imgbody = [[NSMutableStringalloc]init];
//此处循环添加图片文件
//添加图片信息字段
//声明pic字段,文件名为boris.png
//[body appendFormat:[NSString stringWithFormat: @"Content-Disposition: form-data; name=\"File\"; filename=\"%@\"\r\n", [keys objectAtIndex:i]]];
////添加分界线,换行
[imgbodyappendFormat:@"%@\r\n",MPboundary];
[imgbody appendFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@.jpg\"\r\n", [keysobjectAtIndex:i],[dicImgNameobjectForKey:[keysobjectAtIndex:i ]]];
//声明上传文件的格式
[imgbody appendFormat:@"Content-Type: application/octet-stream; charset=utf-8\r\n\r\n"];
NSLog(@"上传的图片:%@ %@", [keysobjectAtIndex:i], [dicImgNameobjectForKey:[keys objectAtIndex:i ]]);
//将body字符串转化为UTF8格式的二进制
//[myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];
[myRequestData appendData:[imgbodydataUsingEncoding:NSUTF8StringEncoding]];
//将image的data加入
[myRequestDataappendData:data];
[myRequestData appendData:[@"\r\n"dataUsingEncoding:NSUTF8StringEncoding]];
}
//声明结束符:--AaB03x--
NSString *end=[[NSStringalloc]initWithFormat:@"%@\r\n",endMPboundary];
//加入结束符--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"];
//[request setValue:@"keep-alive" forHTTPHeaderField:@"connection"];
//[request setValue:@"UTF-8" forHTTPHeaderField:@"Charsert"];
//设置Content-Length
[request setValue:[NSStringstringWithFormat:@"%lu", (unsignedlong)[myRequestDatalength]]forHTTPHeaderField:@"Content-Length"];
//设置http body
[requestsetHTTPBody:myRequestData];
//http method
[requestsetHTTPMethod:@"POST"];
//建立连接,设置代理
//NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
//设置接受response的data
NSData *mResponseData;
NSError *err =nil;
mResponseData = [NSURLConnectionsendSynchronousRequest:requestreturningResponse:nilerror:&err];
NSDictionary* jsonBack;
if(mResponseData ==nil){
NSLog(@"err code : %@", [errlocalizedDescription]);
return jsonBack;
}
jsonBack = [NSJSONSerializationJSONObjectWithData:mResponseDataoptions:NSJSONReadingMutableLeaveserror:&err];
NSLog(@"jsonBack:%@",jsonBack);
// res = [[NSString alloc] initWithData:mResponseData encoding:NSUTF8StringEncoding];
/*
if (conn) {
mResponseData = [NSMutableData data];
mResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&err];
if(mResponseData == nil){
NSLog(@"err code : %@", [err localizedDescription]);
}
res = [[NSString alloc] initWithData:mResponseData encoding:NSUTF8StringEncoding];
}else{
res = [[NSString alloc] init];
}*/
return jsonBack;
}
- iOS多图片上传
- IOS:多图片上传
- ios多图片上传
- IOS 上传多张图片
- iOS上传多张图片
- iOS多张图片上传
- IOS 上传多张图片
- ios AfNetWoring 上传多张图片
- IOS 利用ASIHttpRequest 上传多张图片
- iOS 相册多选图片上传
- iOS AFNetworking 上传多张图片
- iOS 使用AFNet上传图片(多张)
- ios 上传图片
- IOS 上传图片
- ios 图片上传
- IOS 上传图片 ASIFormDataRequest
- IOS之上传图片
- ios http 上传图片
- Leetcode: Convert Sorted Array to Binary Search Tree
- 学习nodejs笔记二
- PHP文件下载函数
- python函数参数详解
- 逆向-360逆向writeup
- ios多图片上传
- URL编码与反编码
- 对CTO的理解
- cursor:pointer
- mount
- IIS Express 虚拟目录
- 分布式与集群的区别
- C语言之第二课:程序的灵魂——算法
- 200/404