【SpringBoot】SpringBoot上传文件报:The temporary upload location ***is not valid

2021-07-15 09:54:18 浏览数 (2)

错误提示:The temporary upload location ***is not valid

错误原因:

在运行springboot时 ,长时间运行后报错 the temporary uplaod location *** is not valid 查过资料后发现是操作系统对‘/temp’下文件自动清理的原因。 在springboot项目启动后 系统会在‘/temp’目录下创建几个目录 用于上传文件。因此清理过‘/temp’下文件后无法上传。

解决办法:

1、 重启服务; (不推荐)

2、自己创建一个临时文件夹(不推荐,重启后不对应)

3、 改变临时文件的存储路径

代码语言:javascript复制
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;

/**
 * @Author: Liu Yue
 * @Descripition:
 * @Date; Create in 2021/7/14 15:29
 **/
@Configuration
public class MultipartConfig{
    @Value("${hake.file.projectPathTmp}")
    private String projectPathTmp;
    /**
     *文件临时上传路径
     */
    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        String location  = projectPathTmp; //指定一个固定的临时文件路径
        File tmpFile   =new File (location);
        if(!tmpFile.exists()){
            tmpFile.mkdirs();
        }
        factory.setLocation(location);
        return factory.createMultipartConfig();
    }
}

测试的时候,可以打断点,能看到临时文件再上传的时候存在,上传完成后,自动清除。

每天进步一点点!!!

0 人点赞