iOS 上传图片到服务器

原文链接:http://borissun.iteye.com/blog/1338991

原文作者:BorisSun

    - (IBAction)upload:(id)sender {

        //分界线的标识符

       NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";

        //根据url初始化request

        NSMutableURLRequest* request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:@"http://……"] //这里写上传地址

                                                              cachePolicy:NSURLRequestReloadIgnoringLocalCacheData

                                                          timeoutInterval:10];

        //分界线 --AaB03x

       NSString *MPboundary=[[NSStringalloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];

        //结束符 AaB03x--

       NSString *endMPboundary=[[NSStringalloc]initWithFormat:@"%@--",MPboundary];

        //要上传的图片

       UIImage *image=[UIImageimageNamed:@"1.png"];

        //得到图片的data

        NSData* data =UIImagePNGRepresentation(image);

        //http body的字符串

        NSMutableString *body=[[NSMutableStringalloc]init];

        //参数的集合的所有key的集合

    //    NSArray *keys= [params allKeys];

        

        //遍历keys

    //    for(int i=0;i<[keys count];i++)

    //    {

    //        //得到当前key

    //        NSString *key=[keys objectAtIndex:i];

    //        //如果key不是pic,说明value是字符类型,比如nameBoris

    //        if(![key isEqualToString:@"pic"])

    //        {

    //            //添加分界线,换行

    //            [body appendFormat:@"%@\r\n",MPboundary];

    //            //添加字段名称,换2

    //            [body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];

    //            //添加字段的值

    //            [body appendFormat:@"%@\r\n",[params objectForKey:key]];

    //        }

    //    }

        

        添加分界线,换行

        [bodyappendFormat:@"%@\r\n",MPboundary];

        //声明pic字段,文件名为boris.png

        [body appendFormat:@"Content-Disposition: form-data; name=\"pic\"; filename=\"20150624_1.jpg\"\r\n"];

        //声明上传文件的格式

        [body appendFormat:@"Content-Type: image/png\r\n\r\n"];

        

        //声明结束符:--AaB03x--

       NSString *end=[[NSStringalloc]initWithFormat:@"\r\n%@",endMPboundary];

        //声明myRequestData,用来放入http body

        NSMutableData *myRequestData=[NSMutableDatadata];

        //body字符串转化为UTF8格式的二进制

        [myRequestData appendData:[bodydataUsingEncoding:NSUTF8StringEncoding]];

        //imagedata加入

        [myRequestDataappendData:data];

        //加入结束符--AaB03x--

        [myRequestData appendData:[enddataUsingEncoding:NSUTF8StringEncoding]];

        

        //设置HTTPHeaderContent-Type的值

       NSString *content=[[NSStringalloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];

        //设置HTTPHeader

        [request setValue:contentforHTTPHeaderField:@"Content-Type"];

        //设置Content-Length

        [request setValue:[NSStringstringWithFormat:@"%d", [myRequestDatalength]] forHTTPHeaderField:@"Content-Length"];

        //设置http body

        [requestsetHTTPBody:myRequestData];

        //http method

        [requestsetHTTPMethod:@"POST"];

        

        //建立连接,设置代理

       NSURLConnection *conn = [[NSURLConnectionalloc] initWithRequest:requestdelegate:self];

        

        //设置接受responsedata

       if (conn) {

          //  mResponseData = [[NSMutableData data] retain];

        }


    }



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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值