gpt4 book ai didi

java - Spring Rest - 发布多个文件

转载 作者:行者123 更新时间:2023-12-01 14:32:03 25 4
gpt4 key购买 nike

使用 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 时的请求 header (出现错误): enter image description here

这是从 Postman 调用/uploadMultipleFiles 时的请求 header (工作正常): enter image description here

这是从 Postman 调用/upload 时的请求 header (工作正常): enter image description here

这是通过 Swagger 调用/upload 时的请求 header (工作正常): enter image description here

首先我认为 Content-Type 可能与我的问题有关。但是 Swagger 始终发送 application/json,并且它适用于单个上传端点。

有什么想法吗?

最佳答案

当您使用 multipartfile 处理文件上传时,您应该将请求的内容类型设置为 multipart/form-data。屏幕截图显示 Postman 使用的是 multipart/form-data 而不是 application/json

关于java - Spring Rest - 发布多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62221633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com