上传图片资源到服务器

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo

{

  

    UIImage *newImage = [self squareImageFromImage:image scaledToSize:image.size.width];


    //将图片进行压缩

//    self.imageData = UIImageJPEGRepresentation(newImage, kUploadPictureRepresentation);

    if (UIImagePNGRepresentation(newImage) == nil) {

        

        self.imageData = UIImageJPEGRepresentation(newImage, 1);

    } else {

        self.imageData = UIImagePNGRepresentation(newImage);

     }

 

    

    NSMutableDictionary * dicUserInfo = [[NSMutableDictionary alloc] init];

    

    NSNumber *type = [NSNumber numberWithInt:1];

    [dicUserInfo setValue:type forKey:@"type"];

    if (self.imageData) {

        [dicUserInfo setValue:[NSDictionary dictionaryWithObject:self.imageData forKey:@"file"] forKey:@"file"];

    }

    /

    //分界线的标识符

    NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";

//初始化url

    NSString *requestString = [[NSString alloc] initWithFormat:@"%@%@",K_HOST_ADDRESS,K_UPLOADIMAGE];

    NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:requestString]

                                                           cachePolicy:NSURLRequestReloadIgnoringLocalCacheData

                                                       timeoutInterval:10];

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

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

    //要上传的图片

    NSData *image2 = self.imageData;

    NSMutableString *body=[[NSMutableString alloc]init];

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

    {

        NSString *key = [[dicUserInfo allKeys] objectAtIndex:i];

        if(![key isEqualToString:@"file"])

        {

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

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

            [body appendFormat:@"%@\r\n",[dicUserInfo valueForKey:key]];

        }

    }

    

    NSString *filename = [NSString stringWithFormat:@"%.0f", [[NSDate date] timeIntervalSince1970]];

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

    [body appendFormat:@"Content-Disposition: form-data; name=\"file\"; filename=\"%@.jpg\"\r\n",filename];

    [body appendFormat:@"Content-Type: image/jpge,image/gif, image/jpeg, image/pjpeg, image/png\r\n\r\n"];

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

    NSMutableData *myRequestData=[NSMutableData data];

    [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];

    [myRequestData appendData:image2];

    [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];

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

    [request setValue:content forHTTPHeaderField:@"Content-Type"];

    [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[myRequestData length]] forHTTPHeaderField:@"Content-Length"];

    [request setHTTPBody:myRequestData];

    [request setHTTPMethod:@"POST"];

    //建立连接,设置代理

    NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];

    if(conn){

        NSLog(@"连接成功");

    }

    //提示用户上传成功  需要判断返回的json

    NSOperationQueue *queue = [[NSOperationQueue alloc] init];


    [NSURLConnection  sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError){

         

        NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];

        if (responseCode == 200) {

            NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

            if (returnString) {

                [self saveImage:returnString];

            }

        }

    }];

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值