for*_*rtm 1 java spring spring-mvc spring-boot
使用下面的 API 和 input ,会消耗多部分/表单请求,但对于所有文件,键是静态“文件”,因为RequestPart("files") 但是所有字符串的键都是动态的,因为Map<String,String>。
@PostMapping(value = "/xyz", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> uploads(@RequestPart("files") MultipartFile[] outputFiles, @RequestParam Map<String, String> keyValues {
...
}
files - file_1_name
files - file_2_name
files - file_3_name
key1 - value1
key2 - value2
Run Code Online (Sandbox Code Playgroud)
然而下面的 API 并没有按预期工作。需要为上传的每个文件提供动态密钥,并且要上传的文件总数未知,因此使用 >Map<String, MultipartFile而不是MultipartFile[]。它仍然期望每个上传的文件都有静态密钥“outputFiles”。
@PostMapping(value = "/xyz", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> uploads(@RequestPart Map<String, MultipartFile> outputFiles, @RequestParam Map<String, String> keyValues {
...
}
Input
======
file_1_name - file_1_any_name
file_2_name - file_2_any_name
file_3_name - file_3_any_name
key1 - value1
key2 - value2
Run Code Online (Sandbox Code Playgroud)
我们是否可以支持像 file_name_1、file_name_2 (如上所示)这样的动态键来进行文件上传,就像Map<String, MultipartFile>使用 spring boot / spring mvc 一样Map<String,String>?
接受MultipartHttpServletRequest request作为控制器的参数也允许动态键进行多部分/表单文件上传。
request.getParameterMap()
request.getFileMap()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2116 次 |
| 最近记录: |