爪哇弹簧:使用JSON沿上传多个MultipartFile文件作为一个机构成单个请求(HTTP-> POST)

时间:2019-01-31 05:41:14

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

你好朋友

我正在寻找一种解决方案,可以上传多个 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.";
}

任何帮助将很感激!!

3 个答案:

答案 0 :(得分:4)

    @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
}

答案 1 :(得分:1)

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

公共作业uploadImageForAJo(@PathVariable Long jobId,@RequestParam(“ file”)MultipartFile []文件)

,如果您愿意,可以在此处传递JSON负载以及其他必需信息作为@RequestBody

您可以查看以下问题,以查找如何使用邮递员测试api

Tool for sending multipart/form-data request

答案 2 :(得分:0)

@CrossOrigin(来源=“ *”)     @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 {     }