在一个 POST 请求中上传包含元数据的多个文件

Upload multiple files with metadata in one POST request

我想在单个 POST 请求中上传多个包含相关元数据的文件。 这是我的 POJO:

@Getter
@Setter
@NoArgsConstructor
public class Attachment {
  private MultipartFile file;
  private String name;
  private String description;
}

我尝试通过 Postman 使用 formdata(即 multipart/form-data)上传文件,但它抛出异常,提示未找到参数附件。 我也尝试了 @ModelAttribute,但它获取了一个空白列表。当我尝试使用 @RequestPart 时,它抛出了这个错误:"Required request part 'attachments' is not present"

这是我的控制器方法:

@RequestMapping(value = "attachments", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    @ResponseBody
    public void addAttachment(@RequestPart List<Attachment> attachments) {
       // do something
    }

我们可以通过发送带有 base64 编码文件的原始 json 来完成此操作,但我想知道如何使用 multipart 来完成此操作。我在 Whosebug 上关注了很多问题,但 none 的解决方案确实有效。

谢谢:)

@Lakshmikant Deshpande

遗憾的是,目前无法在一个请求中使用参数上传多个文件。 详情请参考源码'RequestPartMethodArgumentResolver.resolveArgument()'.