在我重构了后端,重命名,即前端的文件数组名称(从files
到multiFileArr
)之后,遇到了一个奇怪的情况无法再上传文件。
@PostMapping("/upload/")
public void uploadAnalyzeAndCompare(@RequestParam MultipartFile[] multiFileArr)
// renamed parameter: @RequestParam MultipartFile[] files
// from `files` to `multiFileArr`
以及前端上传:
const request = this.state.fileList;
const requestName = 'files';
DumpAction.upload(request, requestName);
还有upload
方法:
function upload(request, requestName) {
const formData = new window.FormData();
request.map((item) => {
formData.append(requestName, item);
});
return () =>
fetch(`${ENDPOINT}/upload/`,
{
method: 'POST',
body: formData,
enctype: 'multipart/form-data',
}).then(response => response.json())
;
}
最后,我发现 font-end 使用的是旧/旧名称files
,从而导致了此事件。
我检查了一些基本教程,将文件上传到基于Spring的系统:Spring MVC file upload – single and Multiple files upload和File Upload with Spring MVC。
一种默认或惯例,后端和前端中使用的名称应仅为该名称。
我想知道这难道不是那么紧密吗?我们有什么办法可以避免名称一致性限制?
类似于@PathVariable
@GetMapping("/path/{theName:.+}") // we name it here
public String getId(@PathVariable String theName) {
...
}
或直接指定它:
@GetMapping(value="/user/{userId}")
public String getUserName(@PathVariable("userId") int id) {
...
}
这两种情况都不需要font-end
的限制。我们可以在files
的上传过程中达到类似的效果吗?
我重构了代码,导致出现糟糕的情况,即我们的服务无法在几天内不支持任何上传。
任何帮助将不胜感激,谢谢〜