【问题标题】:Upload Image with AfNetworking [duplicate]使用 AfNetworking 上传图片 [重复]
【发布时间】:2016-08-23 11:15:03
【问题描述】:

我正在尝试使用 AFNetworking 上传 imageData(从凝胶或相机中选择并在 UIImageview 上设置的图像)。这是我的代码:

 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [[manager POST:setUrl parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
            [formData appendPartWithFileData:image name:namePara fileName:@"abc.png"mimeType:@"image/png"];
        } success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"Success: %@", responseObject);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"Error: %@", error);
        }]resume];


我尝试了太多,但我意识到 uploadTaskWithStreamedRequest:request 块不再编译。并且我的 responseObject 不再记录。
我该怎么做?

【问题讨论】:

标签: ios objective-c afnetworking afnetworking-2 afnetworking-3


【解决方案1】:

对于 AFNetworking 2.5 版本:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

[manager POST:@"Your_API" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
          [formData appendPartWithFileData:img_data name:@"param_name" fileName:@"abc.png"mimeType:@"image/png"];
        }
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Success: %@", responseObject);


    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];

【讨论】:

  • AFHTTPRequestOperationManager 未声明。如何获得?
  • @ChandraChothani 您使用的是哪个版本的AFNetworking
  • @ChandraChothani 什么是响应或错误?
  • 否。手动使用。并且没有错误或响应我可以显示。bcz 它没有进入构造BodyWithBlock 块。
  • @iosDeveloper 检查您的网速、图像大小或您的 php 端。
【解决方案2】:

你可以这样做,

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];


 [[manager POST:urlStrToUploadMedia parameters:parameter constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

                    [formData appendPartWithFileData:dataToAppend name:mediaName fileName:mediaName mimeType:mimeType];

                } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {

                    NSLog(@"response object : %@",responseObject);

                } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

                    NSLog(@"failure : %@",error.localizedDescription);


                }]resume];

这里dataToAppendImage converted to NSDatamediaName 是图像的名称(无论你想给出什么),mimeType 是 mimeType,如 image/jpegimage/png 取决于你的图像类型。

【讨论】:

  • 查看我更新的问题。正如你所说,我已经设置了。但仍然没有调用那个块
  • 试试AFHTTPSessionManager经理。并检查你得到了什么成功或失败?
  • 我先尝试了 AFHTTPSessionManager。但它想要工作。我不知道会发生什么
  • 你遇到了什么错误?我的意思是发生了什么?
  • 什么都不会发生。只需调用该块,并在 20 分钟或更长时间后进入成功块。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多