如何将图像发送到 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"];

}

图片在SomeImageViewnow.You可以转换成NSData

 NSData *imageData =UIImageJPEGRepresentation(image, 1.0);

并使用 multipart/form-data 上传 如果您需要相关代码,请转到本教程。我最好的建议是:http://nthn.me/posts/2012/objc-multipart-forms.html