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

使用GridFS Template上传PDF到MongoDB时file参数缺失异常如何解决

异常原因

该异常表示Spring MVC没有从请求中解析到控制器方法要求的、名为file的必填文件参数,常见触发原因如下:

  • 接口调用方发送请求时,文件对应的表单字段名和@RequestParam("file")中指定的file不一致
  • 请求未设置正确的Content-Type,文件上传请求必须使用multipart/form-data类型,使用其他类型会导致Spring无法解析文件参数
  • 上传文件大小超出了Spring默认的上传阈值,参数被框架直接丢弃
  • 非Spring Boot的传统Spring MVC项目未主动注册MultipartResolver组件,无法解析multipart类型的请求
解决方案

可按以下顺序排查修复:

  1. 核对接口调用的参数名:
    发送请求时,文件对应的表单key必须设置为file,和控制器注解里的参数名保持一致。如果允许文件参数非必填,可以修改注解配置关闭必填校验:
    @RequestParam(value = "file", required = false) MultipartFile file
    
  2. 确认请求头配置:
    调用接口时必须将请求头Content-Type设置为multipart/form-data,如果使用Postman等工具测试,直接在body栏选择form-data类型,新增key为file,类型切换为File后选择本地PDF文件即可。
  3. 调整文件上传大小限制:
    在项目配置文件中添加以下配置,按需调整最大允许上传的文件大小:
    # application.properties配置
    spring.servlet.multipart.max-file-size=20MB
    spring.servlet.multipart.max-request-size=50MB
    
    如果是yaml配置:
    spring:
      servlet:
        multipart:
          max-file-size: 20MB
          max-request-size: 50MB
    
  4. 注册MultipartResolver(仅传统Spring MVC项目需要):
    在Spring配置类中添加MultipartResolver的Bean声明:
    @Bean
    public MultipartResolver multipartResolver() {
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        // 设置最大上传大小为20MB
        resolver.setMaxUploadSize(20 * 1024 * 1024);
        return resolver;
    }
    

内容的提问来源于stack exchange,提问作者Prasad Mayya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:27:03