iOS通过http post上传图片

下面是来客网 jb51.cc 通过网络收集整理的代码片段。

来客网小编现在分享给大家,也给大家做个参考。

//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;
    //添加拍照图
     
     
    //分界线的标识符 
    NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x"; 
    //分界线 --AaB03x 
    NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY]; 
    //结束符 AaB03x-- 
    NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];
    //添加拍照图片
    imageView.image=[UIImage imageNamed:@"[email protected]"];
    NSData* data = UIImagePNGRepresentation(imageView.image);
    NSLog(@"%@",data);
    //http body的字符串  
    NSMutableString *body=[[NSMutableString alloc]init];  
    //参数的集合的所有key的集合  
    NSArray *keys= [sugestDic allKeys];  
     
    //遍历keys  
    for(int i=0;i<[keys count];i++)  
    {  
        //得到当前key  
        NSString *key=[keys objectAtIndex:i];  
        //如果key不是pic,说明value是字符类型,比如name:Boris  
        if(![key isEqualToString:@"files"])
        {  
            //添加分界线,换行  
            [body appendFormat:@"%@rn",MPboundary];  
            //添加字段名称,换2行  
            [body appendFormat:@"Content-Disposition: form-data; name="%@"rnrn",key];  
            //添加字段的值  
            [body appendFormat:@"%@rn",[sugestDic objectForKey:key]];              
        }  
    }  
    if (imageView.image) {
        ////添加分界线,换行  
        [body appendFormat:@"%@rn",MPboundary];
        //声明pic字段,文件名为boris.png  
        [body appendFormat:@"Content-Disposition: form-data; name="files"; filename="boris.png"rn"];  
        //声明上传文件的格式  
        [body appendFormat:@"Content-Type: image/pngrnrn"];
    }
     
    //声明结束符:--AaB03x-- 
    NSString *end=[[NSString alloc]initWithFormat:@"rn%@",endMPboundary]; 
    //声明myRequestData,用来放入http body 
    NSMutableData *myRequestData=[NSMutableData data]; 
    //将body字符串转化为UTF8格式的二进制 
    [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]]; 
    //将image的data加入 
    [myRequestData appendData:data]; 
    //加入结束符--AaB03x-- 
    [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];
    //设置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:)];
    // 解析取得的结果
    return tempDic; 
}

以上是来客网(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。

以上是来客网为你收集整理的iOS通过http post上传图片全部内容,希望文章能够帮你解决iOS通过http post上传图片所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。