spring boot 上传文件出错:java.io.IOException: The temporary upload location

一、异常描述
springboot项目做了上传文件的功能,开始时上传文件功能正常,但过了若干天后,再上传文件,说某个目录无效,具体异常如下:

java.io.IOException: The temporary upload location [] is not valid

二、异常日志

image

三、分析原因
1、spring boot的应用服务在启动的时候,会生成在操作系统的/tmp目录下生成一个Tomcat.*的文件目录,用于"java.io.tmpdir"文件流操作TomcatEmbeddedServletContainerFactory;

2、程序对文件的操作时:会生成临时文件,暂存在临时文件中;

3、Linux系统是会自动清理/tmp目录的;

从而导致在若干天后,再上传文件时,报如上的错误。

四、解决方案
1、临时方案
重启服务,可立即解决问题,但过段时间还会重现该异常。

2、永久方案:修改项目的临时目录路径
jvm在启动时增加参数-Djava.io.tmpdir=自定义目录(需要确保该目录不被随便删除)

你可能感兴趣的:(spring boot 上传文件出错:java.io.IOException: The temporary upload location)