【问题标题】:How to send Image into post method?如何将图像发送到 post 方法?
【发布时间】:2015-09-16 10:47:51
【问题描述】:

我在这里获取图像路径,我将路径转换为 ​​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:^{
    }];
}

这是我的邮政编码

-(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 是一个好方法,因为那里有很多文件,我不知道如何实现,请任何人指导我......

【问题讨论】:

  • 实际问题是什么?你试过AFNetworking吗?如果尝试过,您面临的错误是什么?另外,将您如何上传到服务器的代码发布到您的服务器。
  • 能否请您设置一个断点并检查您的imgdata 是否有数据且不为零。另外,能否请您分享您用于进行服务器调用和发送此数据的代码。

标签: ios objective-c afnetworking


【解决方案1】:

这不是向服务器传输数据的方式。您正在转换 NSString 中的所有内容,然后可能会发送它。

Here 是你应该这样做的。 This thread 展示了如何发送图像数据以及其他详细信息。阅读所有答案。

【讨论】:

    【解决方案2】:
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    
         [picker dismissViewControllerAnimated:YES completion:nil];
         SomeImageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    
    }
    

    图片现在在SomeImageView。您可以将其转换为NSData

     NSData *imageData =UIImageJPEGRepresentation(image, 1.0);
    

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

    【讨论】:

    • 好的,@KishoreKumar 让我知道你的问题出在哪里。准备提供帮助。
    • 今天我不在办公室指导我明天我会在我挣扎的任何时候给你打电话。
    • 并将答案标记为正确,以便与您有相同问题的人直接获得正确答案。
    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多