带有@RequestBody的Spring Multipart文件

时间:2017-02-20 21:02:24

标签: spring multipartform-data

我正在尝试将数据从应用上传到Spring后端服务。 要上传的内容是DataModel,其中包含要创建的对象的数据以及链接到数据的多个图像。 因此我使用此方法签名:

@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public Survey createSurvey(@RequestBody SurveyPostHelper helper, @RequestParam(value="file", required = true) MultipartFile[] images)

我尝试使用注释,但要么我得到一个空白的图像数组,要么我的助手是空的。 你会如何解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:3)

我发现,这种方法签名可以完成这项工作:

@ResponseBody
public Survey createSurvey(@RequestPart(required=true) SurveyPostHelper helper, @RequestPart(value="file", required = true) final MultipartFile[] images)

在我的情况下,重要的是在客户端应用程序中设置MimeType。文件MimeType应为image/jpgSurveyPostHelperapplication/json,以允许Spring解析json并将其绑定到我的Object。

答案 1 :(得分:0)

查看为我工作的客户端代码示例图像是我要保存的文件列表

var formData = new FormData();

for (var i = 0; i < images.length ; i++) {
  formData.append('images', images[i]);
}

formData.append('adData', new Blob([JSON.stringify(adData)], {
    type: "application/json"
}));