在一个 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()'.
我想在单个 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()'.