关于使用http请求上传图片到服务器

       

    NSMutableURLRequest* urlRequest=[[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestReloadRevalidatingCacheData timeoutInterval:40];

    boundary =@"0xKhTmLbOuNdArY";

    NSString* contentType= [NSString stringWithFormat:@"multipart/form-data;boundary=%@",boundary];

    [urlRequest setValue:contentType forHTTPHeaderField:@"Content-Type"];

    

    NSMutableData* body =[NSMutableData data];

    [body appendData:[[NSString stringWithFormat:@"\n--%@\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[NSString stringWithFormat:@"Content-Disposition:form-data;name='PARAM';value='%@'\n\n",paramStr] dataUsingEncoding:NSUTF8StringEncoding]];

  // 具体的上传文本数据 

    if (self.topicType ==1) {

        [body appendData:[[NSString stringWithFormat:@"{\"sid\":\"%@\",\"Content\":\"%@\"}",sid,text] dataUsingEncoding:NSUTF8StringEncoding]];

    }else if (self.topicType ==2){

        [body appendData:[[NSString stringWithFormat:@"{\"sid\":\"%@\",\"Content\":\"%@\",\"Topic\":\"%@\"}",sid,text,num] dataUsingEncoding:NSUTF8StringEncoding]];

    }

    [body appendData:[[NSString stringWithFormat:@"\n--%@\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    //第二段

    int imageTag=0;

   

    //  图片为多张时

    //将字典排序 不然图片顺序会乱

    NSArray* array =dic2.allKeys;

    array =[array sortedArrayUsingComparator:^(id obj1 ,id obj2){

        NSComparisonResult result = [obj1 compare:obj2];

        return result==NSOrderedDescending;

    }];


    for (int i=0; i< array.count; i++) {

        NSString* key =[array objectAtIndex:i];

        id value =[dic2 objectForKey:key];


        if ([value isKindOfClass:[UIImage class]]) {

            UIImage* im =[dic2 objectForKey:key];

            //  对图片进行质量压缩

            NSData* dataImg=UIImageJPEGRepresentation(im, 1);

            if (dataImg.length >100*1024) {

                dataImg =UIImageJPEGRepresentation(im, .08);

            }else if(dataImg.length >50*1024 && dataImg.length < 100 *1024){

                dataImg =UIImageJPEGRepresentation(im, 0.3);

            }else{

                

            }

            [body appendData:[[NSString stringWithFormat:@"\n--%@\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

            [body appendData:[[NSString stringWithFormat:@"Content-Disposition:form-data;name='userfile_%d';filename='userfile.jpg'\n",imageTag] dataUsingEncoding:NSUTF8StringEncoding]];

            imageTag++;

             [body appendData:[[NSString stringWithFormat:@"Content-Type:image/jpg\n\n"] dataUsingEncoding:NSUTF8StringEncoding]];

            [body appendData:dataImg];

            [body appendData:[[NSString stringWithFormat:@"\n--%@--\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];


        }

    }


    

    [urlRequest setHTTPMethod:@"POST"];

    [urlRequest setHTTPBody:body];

    NSLog(@"------上传数据大小---%d----",body.length);

    [NSURLConnection connectionWithRequest:urlRequest delegate:self];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值