使用 AfNetworking 上传图片 [重复]

Posted

技术标签:

【中文标题】使用 AfNetworking 上传图片 [重复]【英文标题】:Upload Image with AfNetworking [duplicate] 【发布时间】: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 不再记录。 我该怎么做?

【问题讨论】:

查看此帖子接受的答案:***.com/questions/19836432/… 【参考方案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 分钟或更长时间后进入成功块。

以上是关于使用 AfNetworking 上传图片 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 AFNetworking 快速上传多张图片

使用 AFNetworking 后台上传大量图片

使用 AFNetworking、ios 上传图片

在swift ios中使用AFNetworking上传图片

AFNetworking 3.0 上传图片

AFNetworking : 上传带有其他参数的图片