springboot项目打成war包放在tomcat中启动后,postman用form-data类型请求后台接口报错如下图

后台接口报错:Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: 关闭的流。
本地idea启动测试没问题 打war包放tomcat启动就报错 这是什么问题呀 百度了好多说的都没效果 一直研究了好几天了 哪位老哥可以帮忙看看

img

img

配置文件里,增加如下配置。

spring:
  mvc:
        hiddenmethod:
       filter:
         enabled: true      

缺少servlet-api的jar包,在pom.xml加入依赖,开发运行注释掉,打包时要放开。

在application.yml文件中设置multipart location ,并重启项目

server
  tomcat:
     basedir: /tmp/tomcat

添加如下配置,并设置固定的上传文件临时目录即可


@Configuration
public class UploadFileConfig {
 
    private static final String TMP_UPLOAD_LOCATION = "/tmp/mtr_file";
 
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        // 创建存储的文件夹 避免使用的时候找不到
    // 这里用的是 Hutool 的工具类,可以自己写
        FileUtil.mkdir(TMP_UPLOAD_LOCATION);
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation(TMP_UPLOAD_LOCATION);
        // 单个文件最大
        factory.setMaxFileSize("20MB");
        // 设置总上传数据总大小
        factory.setMaxRequestSize("20MB");
        return factory.createMultipartConfig();
    }
 
}