本文實(shí)例為大家分享了iOS通過http post上傳圖片的相關(guān)代碼,供大家參考,具體內(nèi)容如下
//ASIFormDataRequest方式 POST上傳圖片-(NSDictionary *)addPicWithDictionary:(NSDictionary *)sugestDic{NSDictionary *tempDic=nil;NSString *url=[NSString stringWithFormat:@"http://182.50.0.62:8095/xianServer/upload/uploadImage?clientType=mobile"];form = [[[ASIFormDataRequest alloc]initWithURL:[NSURL URLWithString:url]] autorelease];[form setTimeOutSeconds:60.0];form.delegate = self;//添加拍照?qǐng)D//分界線的標(biāo)識(shí)符NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";//分界線 --AaB03xNSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];//結(jié)束符 AaB03x--NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];//添加拍照?qǐng)D片imageView.image=[UIImage imageNamed:@"btn_done_down@2x.png"];NSData* data = UIImagePNGRepresentation(imageView.image);NSLog(@"%@",data);//http body的字符串NSMutableString *body=[[NSMutableString alloc]init];//參數(shù)的集合的所有key的集合NSArray *keys= [sugestDic allKeys];//遍歷keysfor(int i=0;i<[keys count];i++){//得到當(dāng)前keyNSString *key=[keys objectAtIndex:i];//如果key不是pic,說明value是字符類型,比如name:Borisif(![key isEqualToString:@"files"]){//添加分界線,換行[body appendFormat:@"%@/r/n",MPboundary];//添加字段名稱,換2行[body appendFormat:@"Content-Disposition: form-data; name=/"%@/"/r/n/r/n",key];//添加字段的值[body appendFormat:@"%@/r/n",[sugestDic objectForKey:key]];}}if (imageView.image) {////添加分界線,換行[body appendFormat:@"%@/r/n",MPboundary];//聲明pic字段,文件名為boris.png[body appendFormat:@"Content-Disposition: form-data; name=/"files/"; filename=/"boris.png/"/r/n"];//聲明上傳文件的格式[body appendFormat:@"Content-Type: image/png/r/n/r/n"];}//聲明結(jié)束符:--AaB03x--NSString *end=[[NSString alloc]initWithFormat:@"/r/n%@",endMPboundary];//聲明myRequestData,用來放入http bodyNSMutableData *myRequestData=[NSMutableData data];//將body字符串轉(zhuǎn)化為UTF8格式的二進(jìn)制[myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];//將image的data加入[myRequestData appendData:data];//加入結(jié)束符--AaB03x--[myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];//設(shè)置HTTPHeader中Content-Type的值NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];[form addRequestHeader:@"Content-Type" value:content];[form addRequestHeader:@"Content-Length" value:[NSString stringWithFormat:@"%d", [myRequestData length]]];[form setRequestMethod:@"POST"];[form startAsynchronous];[form setDidFailSelector:@selector(requestBeFailed:)];[form setDidFinishSelector:@selector(requestBeFinished:)];// 解析取得的結(jié)果return tempDic;}以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選