【问题标题】:Spring Multipart File with @RequestBody带有 @RequestBody 的 Spring 多部分文件
【发布时间】:2023-03-14 03:37:02
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 能否提供一个用于上传图片的代码?
  • 我用 Alamofire 做这个,但同时我解决了它。感谢您的宝贵时间

标签: spring multipartform-data


【解决方案1】:

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

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

就我而言,重要的是在客户端应用程序中设置 MimeType。文件 MimeType 应该是 image/jpgSurveyPostHelpers 到 application/json 以允许 Spring 解析 json 并将其绑定到我的对象。

【讨论】:

  • 能否请您展示您的客户端应用程序?你是用ajax发送的吗?
  • 我从带有 Alamofire 库的 iOS 应用程序发送。它使用多部分 POST 请求来上传多个图像和 JSON 对象。这也应该可以通过 AJAX 实现。
【解决方案2】:

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

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"
}));

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2018-01-30
    • 2014-04-01
    • 1970-01-01
    • 2014-02-15
    • 2018-03-30
    相关资源
    最近更新 更多