You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwaggerUI仅显示文本框无文件上传按钮,更换注解后仍未解决

解决Swagger UI不显示文件上传按钮的问题

以下是几个排查和解决方向:

1. 确保接口方法与注解配置正确

  • 接口必须使用POST请求方法,文件上传仅支持POST提交
  • 给方法添加@PostMapping并指定consumes = MediaType.MULTIPART_FORM_DATA_VALUE
  • @RequestPart的参数类型必须为MultipartFile,配合@ApiParam明确标记为文件类型

示例代码:

import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.parameters.ApiParam;
import org.springframework.web.multipart.MultipartFile;

@RestController
public class FileUploadController {

    @Operation(summary = "文件上传接口")
    @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public String uploadFile(
            @RequestPart("file") @ApiParam(value = "待上传文件", required = true) MultipartFile file) {
        // 业务逻辑实现
        return "上传成功";
    }
}

2. 检查Swagger依赖版本与配置

若使用SpringDoc(Spring Boot 2.4+推荐)

确认application.yaml配置正确:

springdoc:
  swagger-ui:
    enabled: true
    path: /swagger-ui.html
  api-docs:
    enabled: true

若使用Springfox(旧版本)

检查application.yaml配置:

springfox:
  documentation:
    swagger-ui:
      enabled: true
    swagger:
      v2:
        enabled: true

注意:Springfox 3.x无需额外添加@EnableSwagger2注解,2.x版本需在配置类上添加该注解开启Swagger。

3. 排查全局配置干扰

  • 检查是否自定义了HttpMessageConverter,确保未屏蔽MultipartFormDataHttpMessageConverter
  • 确认拦截器、过滤器未修改请求内容,避免Swagger无法识别文件上传类型

4. 清理缓存并重启服务

浏览器缓存可能导致Swagger UI未更新,清理缓存后重新访问/swagger-ui.html,或直接重启Spring Boot服务后测试。


内容的提问来源于stack exchange,提问作者彭于晏

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:07:13