1. 首页
  2. 软件开发
  3. JAVA
  4. Spring Boot设置io临时目录

Spring Boot设置io临时目录

  • 发布于 2024-08-14
  • 0 次阅读

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

        在部署 springboot 项目,使用 MultipartFile 上传文件会出现以下异常

Failed to parse multipart servlet request; nested exception is java.io.IOException: 
The temporary upload location [/tmp/tomcat.3016596448718765136.18001/work/Tomcat/localhost/xx] is not valid"

        出现这种情况的原因是由于在部署项目的时候没有指定应用的临时 io 目录,spring 会直接使用操作系统的临时目录,而操作系统的临目录会在一定的周期类回收,导致隔一段时间后上传文件会出现上述问题。

         解决上述文件有很多种方式,根据网友经验,总结以下四种设置临时目录的方法:

一、配置 tomcat 的 basedir

server:
  tomcat:
    basedir: /usr/local/temp

二、配置 multipart 的 location

spring:
  servlet:
    multipart:
      location: /usr/local/temp

三、启动 jar 指定 tmpdir

@Bean
public MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setLocation("/usr/local/temp");
    return factory.createMultipartConfig();
}

四、编码注入

@Bean
public MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setLocation("/usr/local/temp");
    return factory.createMultipartConfig();
}