【问题标题】:Java Spring : Upload multiple MultipartFile files along with JSON as a body into single request(HTTP->POST)?Java Spring:将多个MultipartFile文件连同JSON作为一个主体上传到单个请求(HTTP->POST)中?
【发布时间】:2019-01-31 05:41:13
【问题描述】:

你好朋友,

我正在寻找可以上传多个 MultipartFile 以及输入JSON正文的解决方案。我知道有很多相关的东西可用,但我没有找到我的解决方案。这促使我向社区提出问题。

我的要求也是这样,

我已经开发了(实际上是在开发并处于最后阶段)开源库,学校/学院/大学愿意根据主题为学生上传学习材料。 连同材料用户(经过身份验证)必须提供一些文本信息,例如,标题、描述、备注

所以我的预期实体也是如此,

@Entity
class Material {
private MultipartFile[] content;
private String title;
private String description;
private String remarks;
}

我也想使用 spring MVC 功能 在哪里失败并需要您的帮助,

public String uploadMaterial(@RequestBody Material material) {
... business logic ...
return "successfully material saved.";
}

任何帮助都会非常感激!

【问题讨论】:

    标签: java spring spring-boot spring-mvc multipartform-data


    【解决方案1】:
        @RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
        public @ResponseBody Material createMaterial(@RequestPart("addtionalData") String addtionalData, @RequestPart("fileList") List<MultipartFile> fileList) throws IOException {
    
            Material material = new ObjectMapper().readValue(addtionalData, Material.class);
            material.setContent(fileList);
    // do what ever you want to do
    }
    

    【讨论】:

      【解决方案2】:

      我对我的一个项目有类似的要求,我使用以下技术上传图片

      public Job uploadImageForAJo(@PathVariable Long jobId, @RequestParam("file") MultipartFile[] files)

      如果你愿意,可以在这里传递一个带有其他所需信息的 json 有效负载作为 @RequestBody

      您可以查看以下问题以了解如何使用邮递员测试您的 api

      Tool for sending multipart/form-data request

      【讨论】:

      • 这在我的情况下不起作用。因为我既不以@Pathvariable 的形式传递title、desc,也不传递form-data。正如我所说,我的第一选择是@RequestBody。感谢您的建议并强调这一点。
      • @vishalgajera 可能是您可以将图像转换为 base64 图像并包含为 json 属性
      【解决方案3】:

      @CrossOrigin(origins = "*") @PostMapping("/uploadDocuments") 公共对象 uploadFilesOnAwsS3( @RequestHeader(name = "docId") 字符串 docId, @RequestHeader(name = "referenceId") 字符串 referenceId, @RequestHeader(name = "docTypeId") 字符串 docTypeId, @RequestParam(value = "data") 对象数据, @RequestParam(value = "files", required = true) MultipartFile[] files) 抛出 IOException, MsuException { }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-04
        • 1970-01-01
        • 1970-01-01
        • 2020-02-28
        • 2013-03-30
        • 1970-01-01
        • 2018-03-08
        相关资源
        最近更新 更多