上传图片到网络服务器
问题描述:
我想上传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];
}
}
答
的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];
什么是你的问题吧? – Eiko
对不起,我们不想猜测你的错误。投票结束。 – Eiko