Spring - 上传文件在 swagger 中不起作用

Roh*_*rma 5 java spring file-upload swagger spring-boot

我正在尝试将文件从 Spring Boot 应用程序上传到 Amazon s3。

当我使用 POSTMAN 上传文件时,文件已成功上传到 s3。但是,当我尝试从 swagger 上传文件时,它会以 200 的状态代码响应,但没有上传文件,并且在我的 Spring Boot 应用程序中,它会引发空指针异常。

这是 CORS 问题吗(我什至尝试在 Spring Boot 配置中启用 CORS)?或者我做错了什么,比如需要在我的招摇中添加配置或其他什么?

这是控制器代码 -

@PostMapping(value = "/uploadFile" )
public JSONObject uploadFile(MultipartFile[] file) {
    return this.amazonClient.uploadFile(file);
}
Run Code Online (Sandbox Code Playgroud)

这是工作正常的邮递员请求 -

在此处输入图片说明

这是不起作用的招摇请求 -

在此处输入图片说明

编辑:

在对Controller方法进行如下更改后:

@RequestMapping(value = "/uploadFile",method = RequestMethod.POST, consumes = { "multipart/form-data" })
//@PostMapping(value = "/uploadFile" ) // consumes = MediaType.MULTIPART_FORM_DATA_VALUE
public JSONObject uploadFile(@RequestPart("file") MultipartFile[] file) {
    return this.amazonClient.uploadFile(file);
}
Run Code Online (Sandbox Code Playgroud)

我现在收到以下 curl 请求Swagger

curl -X POST "http://localhost:8080/storage/uploadFile" -H "accept: */*" -H "Content-Type: multipart/form-data" -F "file={}"
Run Code Online (Sandbox Code Playgroud)

您可以清楚地看到file参数变为空。有什么想法吗?

小智 1

我认为,当我尝试上传和下载文件时,Swagger 不能正确支持文件上传或下载,上传工作正常,但是当我用 swagger 下载时,此文件无法打开,但是,与邮递员一起使用一切正常