2016-08-20 177 views
-1

我想上传UIImage到网站。我已经实现了一些代码。我已经从第一页选择图片并在第二页上传。在此处----- [body appendData:[NSData dataWithData:_imgData]]; ---- _imgData变为零。在这里输入代码我已经写了一些代码,但我不知道我的错误在哪里。上传图片到网络服务器

My Code is: 

      -(void)ImgaeCropped:(UIImage *)image 
    { 
     _imageView.image=image; 

     Register2 *reg2=[self.storyboard instantiateViewControllerWithIdentifier:@"Register2"]; 
     // reg2.self.selected_image=_imageView.image; 

     reg2.imgData=imageData; 

     picture_view.hidden=YES; 
    } 

    - (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
    { 
     @try { 
      // transparent_view.hidden=YES; 
      UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
      [indicator startAnimating]; 
      indicator.frame=CGRectMake(0, 0, 10, 10); 
      indicator.center = CGPointMake(CGRectGetMidX(_imageView.bounds), CGRectGetMidY(_imageView.bounds)); 
      [_imageView addSubview:indicator]; 
      [indicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
      [indicator setColor:[UIColor grayColor]]; 
      [indicator startAnimating]; 

      [self dismissViewControllerAnimated:YES completion:^ { 
       [indicator removeFromSuperview]; 
       [indicator stopAnimating]; 
       CropViewController *crop=[self.storyboard instantiateViewControllerWithIdentifier:@"CropViewController"]; 
       crop.cropDelegate=self; 
       crop.image=[info objectForKey:UIImagePickerControllerOriginalImage]; 

    //   UIImageView *imgvUserImage = [[UIImageView alloc]init]; 
       UIImage *imgvUserImage= [info objectForKey:UIImagePickerControllerOriginalImage]; 

       imageData=UIImageJPEGRepresentation(imgvUserImage, 0.9); 

       [self presentViewController:crop animated:YES completion:nil]; 
      }]; 

     } 
     @catch (NSException *exception) { 
      //  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Finish Picking" message:exception.description delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
      //  [alert show]; 
     } 
     @finally { 
      //  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Finish Picking" message:@"Final" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
      //  [alert show]; 
     } 

    } 


And the image selection code is --------------- 

-(void)ImgaeCropped:(UIImage *)image 
{ 
    _imageView.image=image; 

    Register2 *reg2=[self.storyboard instantiateViewControllerWithIdentifier:@"Register2"]; 
    // reg2.self.selected_image=_imageView.image; 

    reg2.imgData=imageData; 

    picture_view.hidden=YES; 
} 

- (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    @try { 
     // transparent_view.hidden=YES; 
     UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
     [indicator startAnimating]; 
     indicator.frame=CGRectMake(0, 0, 10, 10); 
     indicator.center = CGPointMake(CGRectGetMidX(_imageView.bounds), CGRectGetMidY(_imageView.bounds)); 
     [_imageView addSubview:indicator]; 
     [indicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
     [indicator setColor:[UIColor grayColor]]; 
     [indicator startAnimating]; 

     [self dismissViewControllerAnimated:YES completion:^ { 
      [indicator removeFromSuperview]; 
      [indicator stopAnimating]; 
      CropViewController *crop=[self.storyboard instantiateViewControllerWithIdentifier:@"CropViewController"]; 
      crop.cropDelegate=self; 
      crop.image=[info objectForKey:UIImagePickerControllerOriginalImage]; 

//   UIImageView *imgvUserImage = [[UIImageView alloc]init]; 
      UIImage *imgvUserImage= [info objectForKey:UIImagePickerControllerOriginalImage]; 

      imageData=UIImageJPEGRepresentation(imgvUserImage, 0.9); 

      [self presentViewController:crop animated:YES completion:nil]; 
     }]; 

    } 
    @catch (NSException *exception) { 
     //  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Finish Picking" message:exception.description delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
     //  [alert show]; 
    } 
    @finally { 
     //  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Finish Picking" message:@"Final" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
     //  [alert show]; 
    } 

} 
+0

什么是你的问题吧? – Eiko

+0

对不起,我们不想猜测你的错误。投票结束。 – Eiko

回答

1

的AFNetworking添加到您的项目

https://github.com/AFNetworking/AFNetworking

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
hud.mode = MBProgressHUDModeIndeterminate; 
hud.labelText = @"Loading"; 

NSMutableDictionary* data=[NSMutableDictionary new]; 
//if you want to add parameters with the image 
NSData *imageData = UIImageJPEGRepresentation(selectedImage, 0.5); 
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; 
manager.responseSerializer = responseSerializer; 

AFHTTPRequestOperation *op = [manager POST:@"http://www.pickkup.com/webservice/uploadpictureios.php" parameters:data constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileData:imageData name:@"image" fileName:@"photo.jpg" mimeType:@"image/jpeg"]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    [hud hide:YES]; 
    NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    [hud hide:YES]; 

    NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
}]; 

[op start];