【发布时间】:2020-09-25 00:45:36
【问题描述】:
使用 Spring Boot 2.1.8,我在 Rest Controller 中有两种方法,分别需要单个文件和多个文件。这些是方法签名:
@PreAuthorize("hasAnyRole('ROLE_ADMIN')")
@PostMapping("/uploadMultipleFiles")
public List<FileResponse> uploadMultipleFiles(@RequestParam("files") MultipartFile[] files);
@PreAuthorize("hasAnyRole('ROLE_ADMIN')")
@PostMapping("/upload")
public FileResponse uploadFile(@RequestParam("file") MultipartFile file);
单次上传非常完美。我正在设法从 Web 客户端 Postman v7.25.0 和 Swagger 2 加载单个文件。
但多文件方法仅在从 Postman 上传文件时有效,返回 400 http 错误代码。因此,它甚至没有进入方法。
两种情况(web客户端或Swagger)的错误信息是一样的:
can't parse JSON. Raw result:
Missing or unreadable multipart file in request
这是通过 Swagger 调用 /uploadMultipleFiles 时的请求标头(出现错误):
这是从 Postman 调用 /uploadMultipleFiles 时的请求标头(工作正常):
这是从 Postman 调用 /upload 时的请求标头(工作正常):
这是通过 Swagger 调用 /upload 时的请求标头(工作正常):
首先我认为 Content-Type 可能与我的问题有关。但 Swagger 始终发送 application/json,并且它适用于单个上传端点。
有什么想法吗?
【问题讨论】:
标签: java spring model-view-controller multipartform-data spring-rest