Scenario:
The upload file function reports an error, and then check the log.
Error log:
The temporary upload location [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] is not valid
In the Linux system, when the springboot application service is restarted (the java -jar command starts the service), a tomcat* file will be generated in the /tmp directory of the operating system. Directory, the uploaded files must first be converted into temporary files and saved under this folder.
Because the files in the temporary /tmp directory are not used for a long time (10 days), they will be automatically deleted by the system mechanism. Therefore, if the system has not used the temporary folder for a long time, it may cause the above problem.
1. Create a temporary folder:
mkdir -p /tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT
This may happen again later
2. Reconfigure application.properties A file directory, and then restart the project
# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹 server.tomcat.basedir=/data/apps/temp
3. Configuration class configuration temporary file storage directory
@Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setLocation(tmepPath); return factory.createMultipartConfig(); }
After the project has been running online for a period of time, the following exception is thrown when uploading files:
The temporary upload location [/tmp/tomcat.*.80/work/Tomcat/localhost/ROOT] is not valid
After searching, the following solution was adopted [Modify the location of the temporary file]
Add to the application.yml file
location: tempDir: /opt/location/tempDir #此处为*unix的系统相关位置
@Configuration public class MultipartConfig { @Value("${location.tempDir:/opt/tempDir}") 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(); } }
The above is the detailed content of How to configure the temporary file storage directory in springboot. For more information, please follow other related articles on the PHP Chinese website!