调用具有 HashMap 类型的 @RequestPart 参数的 Spring 控制器<FilesUploadEnum, MultipartFile>

问题描述 投票:0回答:1

我有一个用于上传可变数量文件的服务的 Spring 控制器,我想将它们全部封装在一个

HashMap<FilesUploadEnum, MultipartFile>
对象中,而不是一个接一个地作为
@RequestPart
带注释的
MultipartFile
参数发送。
FilesUploadEnum
的元素是这些文件的名称。控制器的代码是:

@PostMapping(path = "/file",
             consumes = {MediaType.MULTIPART_FORM_DATA_VALUE},
    public @ResponseBody ResponseEntity<Void> saveFiles(
              @RequestPart(value = "attached_files")
              MultiValueMap<FilesUploadEnum, MultipartFile> files) { ...

我的问题是:我可以使用 Postman 发出这样的控制器可以接受的 HTTP 请求吗?我将

Content-Type: multipart/form-data
作为标头包含在内,但找不到在请求的正文/表单数据部分中发送
attached_files
部分的方法。我不能只将文件名作为键并将相应的文件作为值。

或者也许我无法向 Postman 提出这样的请求,而我必须使用另一个客户端应用程序?预先感谢您提供的任何帮助:) .

java spring-boot postman multipartform-data multipartfile
1个回答
0
投票

我不明白实体“FilesUploadEnum”。

如果是给定文件的名称,为什么不将输入参数替换为:

"@RequestParam("file") List<MultipartFile> files"

并直接从对象获取文件名,如下所示:

files.forEach(f-> System.out.println(f.getOriginalFilename()));
© www.soinside.com 2019 - 2024. All rights reserved.