[Objective-C] iOS通过http post上传图片 →→→→→进入此内容的聊天室

来自 , 2019-06-14, 写在 Objective-C, 查看 99 次.
URL http://www.code666.cn/view/80f7325f
  1. //ASIFormDataRequest方式 POST上传图片
  2. -(NSDictionary *)addPicWithDictionary:(NSDictionary *)sugestDic{
  3.  
  4.     NSDictionary *tempDic=nil;
  5.      
  6.     NSString *url=[NSString stringWithFormat:@"http://182.50.0.62:8095/xianServer/upload/uploadImage?clientType=mobile"];
  7.      
  8.     form = [[[ASIFormDataRequest alloc]
  9.              initWithURL:[NSURL URLWithString:url]] autorelease];
  10.     [form setTimeOutSeconds:60.0];
  11.     form.delegate = self;
  12.     //添加拍照图
  13.      
  14.      
  15.     //分界线的标识符
  16.     NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";
  17.     //分界线 --AaB03x
  18.     NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
  19.     //结束符 AaB03x--
  20.     NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];
  21.     //添加拍照图片
  22.     imageView.image=[UIImage imageNamed:@"btn_done_down@2x.png"];
  23.     NSData* data = UIImagePNGRepresentation(imageView.image);
  24.     NSLog(@"%@",data);
  25.     //http body的字符串 
  26.     NSMutableString *body=[[NSMutableString alloc]init]
  27.     //参数的集合的所有key的集合 
  28.     NSArray *keys= [sugestDic allKeys]
  29.      
  30.     //遍历keys 
  31.     for(int i=0;i<[keys count];i++) 
  32.     { 
  33.         //得到当前key 
  34.         NSString *key=[keys objectAtIndex:i]
  35.         //如果key不是pic,说明value是字符类型,比如name:Boris 
  36.         if(![key isEqualToString:@"files"])
  37.         { 
  38.             //添加分界线,换行 
  39.             [body appendFormat:@"%@\r\n",MPboundary]
  40.             //添加字段名称,换2行 
  41.             [body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key]
  42.             //添加字段的值 
  43.             [body appendFormat:@"%@\r\n",[sugestDic objectForKey:key]];             
  44.         } 
  45.     } 
  46.     if (imageView.image) {
  47.         ////添加分界线,换行 
  48.         [body appendFormat:@"%@\r\n",MPboundary];
  49.         //声明pic字段,文件名为boris.png 
  50.         [body appendFormat:@"Content-Disposition: form-data; name=\"files\"; filename=\"boris.png\"\r\n"]
  51.         //声明上传文件的格式 
  52.         [body appendFormat:@"Content-Type: image/png\r\n\r\n"];
  53.     }
  54.      
  55.     //声明结束符:--AaB03x--
  56.     NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary];
  57.     //声明myRequestData,用来放入http body
  58.     NSMutableData *myRequestData=[NSMutableData data];
  59.     //将body字符串转化为UTF8格式的二进制
  60.     [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];
  61.     //将image的data加入
  62.     [myRequestData appendData:data];
  63.     //加入结束符--AaB03x--
  64.     [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];
  65.     //设置HTTPHeader中Content-Type的值
  66.     NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
  67.      
  68.     [form addRequestHeader:@"Content-Type" value:content];
  69.     [form addRequestHeader:@"Content-Length" value:[NSString stringWithFormat:@"%d", [myRequestData length]]];
  70.     [form setRequestMethod:@"POST"];
  71.     [form startAsynchronous];
  72.     [form setDidFailSelector:@selector(requestBeFailed:)];
  73.     [form setDidFinishSelector:@selector(requestBeFinished:)];
  74.     // 解析取得的结果
  75.     return tempDic;
  76. }
  77. //objectc/5848

回复 "iOS通过http post上传图片"

这儿你可以回复上面这条便签

captcha