AFNetworking 2.0 spring MVC 上传文件

Posted

技术标签:

【中文标题】AFNetworking 2.0 spring MVC 上传文件【英文标题】:AFNetworking 2.0 spring MVC upload file 【发布时间】:2014-07-15 09:20:07 【问题描述】:

我在将文件上传到 Spring MVC 服务时遇到问题。 这是服务的 Spring MVC @RequestBody

@ResponseBody String handleFileUpload(@PathVariable Integer something, @RequestParam String something, @RequestParam String something, @RequestParam("file") MultipartFile file)

当我尝试使用 AFNetworking 2.0 上传文件时

    [manager POST:requestUrl parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
    NSData *imageData = UIImageJPEGRepresentation(image, 1.0f);

    [formData appendPartWithFileData:imageData name:@"file" fileName:@"file.jpg" mimeType:@"image/jpg"];


它根本不识别文件参数,只是返回无效参数错误。我无法调试服务方法.. 有什么想法吗?

【问题讨论】:

【参考方案1】:

我也有类似的问题,只是没有传递参数(因为我们的API只有@PathVariable,没有@RequestParam):

NSString *urlString = @"your url";
NSData *fileData; // NSData of your image
NSString *fileName = @"fileName";

[manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
    [formData appendPartWithFileData:fileData name:@"file" fileName:fileName mimeType:@"image/png"];
 success:^(AFHTTPRequestOperation *operation, id responseObject) 
    [delegate apiCall:API_FILE_UPLOAD finishedWithObject:responseObject];
 failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    [delegate apiCall:API_FILE_UPLOAD failedWithObject:error];
];

我实际上使用了您的示例,并为参数传递了 nil :)

【讨论】:

以上是关于AFNetworking 2.0 spring MVC 上传文件的主要内容,如果未能解决你的问题,请参考以下文章

从 AFNetworking 1.3 迁移到 AFNetworking 2.0 的问题

AFNetworking 2.0 JSON 解析

AFNetworking 2.0 对现有项目的更新

AfNetworking 2.0 发布问题

如何在旧的 AFNetworking 中使用 AFNetworking 2.0+?

AFNetworking 中的 JSON 错误