SpringBoot如何设置io临时目录

 更新时间:2026年03月05日 11:15:02   作者:fengchengwu2012  
在部署Spring Boot项目时,使用`MultipartFile`上传文件可能会遇到临时目录被 操作系统的临时目录回收导致的问题,解决方法包括配置Tomcat的`basedir`、配置`multipart`的`location`、启动JAR时指定`tmpdir`以及编码注入

在部署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

java -jar  -Djava.io.tmpdir=/usr/local/temp  xxx.jar

四、编码注入

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot中@Conditional注解的介绍及实践

    SpringBoot中@Conditional注解的介绍及实践

    在 Spring Boot 中,@Conditional 注解用于实现 条件化 Bean 装配,本文将详细介绍 @Conditional 相关的注解,并结合实际应用示例讲解其使用方式,感兴趣的小伙伴可以了解下
    2025-03-03
  • java使用Jdom实现xml文件写入操作实例

    java使用Jdom实现xml文件写入操作实例

    这篇文章主要介绍了java使用Jdom实现xml文件写入操作的方法,以完整实例形式分析了Jdom针对XML文件写入操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • KotlinScript构建SpringBootStarter保姆级教程

    KotlinScript构建SpringBootStarter保姆级教程

    这篇文章主要为大家介绍了KotlinScript构建SpringBootStarter的保姆级教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • maven的settings.xml、pom.xml配置文件使用详解

    maven的settings.xml、pom.xml配置文件使用详解

    本文详解了Maven中的配置文件settings.xml和pom.xml,阐述了它们的作用、配置项以及优先级顺序,settings.xml存在于Maven安装目录和用户目录下,分别作用于全局和当前用户,pom.xml位于项目根路径下
    2024-09-09
  • 简单了解Spring IoC相关概念原理

    简单了解Spring IoC相关概念原理

    这篇文章主要介绍了简单了解Spring IoC相关概念原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • java中对HashMap的put过程解读

    java中对HashMap的put过程解读

    这篇文章主要介绍了java中对HashMap的put过程解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • springboot下mybatis-plus开启打印sql日志的配置指南

    springboot下mybatis-plus开启打印sql日志的配置指南

    这篇文章主要给大家介绍了关于springboot下mybatis-plus开启打印sql日志的配置指南的相关资料,还介绍了关闭打印的方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • java线程中synchronized和Lock区别及介绍

    java线程中synchronized和Lock区别及介绍

    这篇文章主要为大家介绍了java线程中synchronized和Lock区别及介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 解决Spring在Thread中注入Bean无效的问题

    解决Spring在Thread中注入Bean无效的问题

    这篇文章主要介绍了解决Spring在Thread中注入Bean无效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • java struts2框架简介

    java struts2框架简介

    本文主要介绍了java struts2框架的基础知识。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01

最新评论