SpringBoot MultipartFile 上传踩坑

SpringBoot 上传文件临时目录自动清理机制

今天生产上传文件的功能无法使用,定位问题,springboot项目日志输出IO异常,如下图
SpringBoot MultipartFile 上传踩坑
观察异常信息,很明显是指在linux服务器下/tmp下的一个临时文件路径不可用,才导致了这个异常。

进入这个目录,这个目录下什么都没有

/tmp/tomcat.8873886914055262809.8034/work/Tomcat/localhost/ROOT

因为tmp是用来存放临时文件的,所以文件上传的时候会生成一个临时文件,上传完成这个临时文件就被清理了.

解决问题
因为这个tmp文件夹是一个临时文件夹,系统会自动清理.

当这个文件夹被清理掉了,再上传文件时,会在这个临时目录下生成临时文件,但是又找不到这个目录了,所以就报错了.

我们只需要重新指定这个临时目录就可以了,在启动命令加上如下参数 --server.tomcat.basedir=tmp

SpringBoot MultipartFile 上传踩坑