0

    Spring Boot 上传文件出错:java.io

    2023.04.16 | admin | 224次围观

    Spring Boot 上传文件出错:java.io.IOException: The temporary upload location

    线上项目上传文件功能突然报错,这是一个比较严重的问题,下面带大家看看一个文件上传的神秘bug

    Caused by: java.io.IOException: The temporary upload location 
    [C:\Users\maomao\AppData\Local\Temp\tomcat.15432125454846448.2357\work\Tom
    cat\localhost\ROOT] is not valid
    

    异常就像是上面那样,tomcat在启动的时候会生成一个临时的上传文件保存的位置文件上传失败io异常怎么办,但是这个位子默认是放在系统的临时文件夹中。当这个tomcat创建的文件夹被系统删除后文件上传失败io异常怎么办,这时在上传文件就出现问题了。

    具体解决方法在:重启服务,tomcat会从新生成新的临时目录,不过这样后面还是会出现之前的情况,所以不建议在生成环境中使用。在application.properties文件中配置server.tomcat.basedir=自定义目录启动时增加参数-Djava.io.tmpdir=自定义目录添加一个配置bean:

      @Autowired
      private TomcatBean tomcatBean;
      @Bean
      MultipartConfigElement multipartConfigElement() {
          File root = new File(tomcatBean.getBasedir());
          if (!root.exists() || root.isFile()) {
              Assert.isTrue(root.mkdirs(), "创建临时文件目录失败!");
          }
          MultipartConfigFactory factory = new MultipartConfigFactory();
          factory.setLocation(tomcatBean.getBasedir());
          return factory.createMultipartConfig();
      }
    

    修改tmpwatch删除文件的逻辑,系统级别的命令,不建议操作

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    标签: 上传文件
    发表评论