SpringBoot 文件上传临时文件路径配置详解
2023-09-11 14:14:53 时间
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。
如果你有兴趣,可以看下码农的系列教程 点击这里查看
当然码农最近也写了一本书
1 问题 SpringBoot 项目上传文件报错
The temporary upload location [/tmp/tomcat.*.80/work/Tomcat/localhost/ROOT] is not valid
上传文件的临时路径找不到
2 原因说明
在linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。
由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。
3 解决方法 自定义配置临时文件路径
在你的项目配置文件中添加自定义配置如下:
这样需要你手动在你服务器根目录下创建这个文件夹,我们可以在项目启动的时候检查一下临时文件夹是否存在,不存在就创建
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.MultipartConfigElement;
import java.io.File;
@Configuration
public class MultipartConfig {
@Value("${location.tempDir:/tmp/tomcat_upload}")
private String tempDir;
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
File tmpDirFile = new File(tempDir);
// 判断文件夹是否存在
if (!tmpDirFile.exists()) {
//创建文件夹
tmpDirFile.mkdirs();
}
factory.setLocation(tempDir);
return factory.createMultipartConfig();
}
}
相关文章
- SpringBoot yml文件语法
- 文件系统(01):基于SpringBoot框架,管理Excel和PDF文件类型
- Springboot 获取 /resources 目录资源文件的 9 种方法
- 基于SpringBoot和WebUploader实现大文件分块上传.断点续传.秒传
- SpringBoot之CommandLineRunner接口和ApplicationRunner接口
- SpringBoot整合Redisson
- SpringBoot读取resources下的文件以及resources的资源路径
- SpringBoot+vue实现文件下载
- springboot 加载自定义yml文件
- SpringBoot+Redis实现分布式锁
- 【Java】Springboot ajax发送JSON类型的POST参数
- SpringBoot Cmd运行Jar文件指定active文件的命令如下
- 使用swagger2配置springboot时出现的问题
- springboot redis发布与订阅
- SpringBoot - 文件上传原理
- springboot结合swagger生成接口文档
- SpringBoot 实现文件的上传(图片、视频)的后台处理
- SpringBoot(项目创建使用+配置文件+日志文件)
- SpringBoot读取application.properties文件
- SpringBoot读取配置文件(从classpath/file读取yml/properties文件)
- SpringBoot上传文件
- 解决SpringBoot中使用@Value 取不到值
- SpringBoot上传文件到Minio服务器,支持批量上传
- springboot文件上传到本地电脑,项目目录,路径保存到数据库,页面显示上传的图片
- 撩对象神器,SpringBoot每天5:20定时发送浪漫语句给女朋友邮箱
- SpringBoot项目使用hutool工具进行HttpClient接口调用的处理(文件上传)
- SpringBoot文件上传下载
- SpringBoot+Vue.js实现大文件分片上传、断点续传与极速秒传
- SpringBoot 整合swagger3.X