如何将图像发送到 post 方法?
How to send Image into post method?
我在这里获取图像路径,我将路径转换为 nsdata,但在服务器端收到空...
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//You can retrieve the actual UIImage
_signupImgView.image = [info valueForKey:UIImagePickerControllerOriginalImage];
//Or you can get the image url from AssetsLibrary
NSURL *path = [info valueForKey:UIImagePickerControllerReferenceURL];
imageSending=[UIImage imageWithData:[NSData dataWithContentsOfURL:path]];
imgdata = UIImagePNGRepresentation(imageSending);//here i am converting as nsdata...
[picker dismissViewControllerAnimated:YES completion:^{
}];
}
这是我的post代码
-(void)signupScreen:(NSString *)firstName :(NSString *)emailID :(NSString *)phoneNumber :(NSString *)password :(NSData *)img
{
NSString *strSignupScreenRequest=[NSString stringWithFormat:@"firstname=%@&email=%@&telephone=%@&password=%@&pic=%@""%@",firstName,emailID,phoneNumber,password,img];
NSData *dataFetch=[strSignupScreenRequest dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:localRegister]];
[self requestFunction:url :dataFetch:NO];
}
这是我的 post 全局分配的方法....
else
{
[request setURL:url];
[request setHTTPMethod:@"POST"];
NSString *conLength=[NSString stringWithFormat:@"%lu",(unsigned long)data.length];
[request setValue:conLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:data];
NSLog(@"post method ===%@",request);
}
我看到大多数人都说 AFNETWORKING 是个好方法,因为那里有很多文件,我不知道如何实现,请任何人指导我....
这不是向服务器传输数据的方式。您正在转换 NSString
中的所有内容,然后可能会发送它。
Here is how you should do it. This thread 显示如何连同其他详细信息一起发送图像数据。通读所有答案。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:nil];
SomeImageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}
图片在SomeImageView
now.You可以转换成NSData
NSData *imageData =UIImageJPEGRepresentation(image, 1.0);
并使用 multipart/form-data
上传
如果您需要相关代码,请转到本教程。我最好的建议是:http://nthn.me/posts/2012/objc-multipart-forms.html
我在这里获取图像路径,我将路径转换为 nsdata,但在服务器端收到空...
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//You can retrieve the actual UIImage
_signupImgView.image = [info valueForKey:UIImagePickerControllerOriginalImage];
//Or you can get the image url from AssetsLibrary
NSURL *path = [info valueForKey:UIImagePickerControllerReferenceURL];
imageSending=[UIImage imageWithData:[NSData dataWithContentsOfURL:path]];
imgdata = UIImagePNGRepresentation(imageSending);//here i am converting as nsdata...
[picker dismissViewControllerAnimated:YES completion:^{
}];
}
这是我的post代码
-(void)signupScreen:(NSString *)firstName :(NSString *)emailID :(NSString *)phoneNumber :(NSString *)password :(NSData *)img
{
NSString *strSignupScreenRequest=[NSString stringWithFormat:@"firstname=%@&email=%@&telephone=%@&password=%@&pic=%@""%@",firstName,emailID,phoneNumber,password,img];
NSData *dataFetch=[strSignupScreenRequest dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:localRegister]];
[self requestFunction:url :dataFetch:NO];
}
这是我的 post 全局分配的方法....
else
{
[request setURL:url];
[request setHTTPMethod:@"POST"];
NSString *conLength=[NSString stringWithFormat:@"%lu",(unsigned long)data.length];
[request setValue:conLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:data];
NSLog(@"post method ===%@",request);
}
我看到大多数人都说 AFNETWORKING 是个好方法,因为那里有很多文件,我不知道如何实现,请任何人指导我....
这不是向服务器传输数据的方式。您正在转换 NSString
中的所有内容,然后可能会发送它。
Here is how you should do it. This thread 显示如何连同其他详细信息一起发送图像数据。通读所有答案。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:nil];
SomeImageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}
图片在SomeImageView
now.You可以转换成NSData
NSData *imageData =UIImageJPEGRepresentation(image, 1.0);
并使用 multipart/form-data
上传
如果您需要相关代码,请转到本教程。我最好的建议是:http://nthn.me/posts/2012/objc-multipart-forms.html