在SpringBoot工程中使用MultipartFile类上传文件时报java.io.FileNotFoundExceprion

代码中是这样写的,使用MultipartFile类来接受前端传入的file类型的图片或者文件,上传时发现报以下错误。

在SpringBoot工程中使用MultipartFile类上传文件时报java.io.FileNotFoundExceprion_第1张图片

问题原因总结如下:

1.spring boot的服务在启动时,会在操作系统的/tmp目录下生成一个Tomcat.*的文件目录,用于"java.io.tmpdir"文件流操作

2.当程序对文件进行操作(上传)时,会在此目录下生成临时文件,暂存在临时文件中

lunix系统的tmpwatch命令会删除10天未使用的临时文件

长时间不进行上传操作,会导致tmp下面的目录Tomcat.*被删除,且删除的文件不可恢复,后续程序的上传操作仍然找tmp/Tomcat.*这个目录,其实已经不存在了,导致上传报错。

解决方案:

1.临时方案:重启服务,会重新生成tomcat.*目录,但是生产环境不建议这样操作。只是紧急的临时处理办法。

2.增加服务启动配置,指定文件上传目录。

       此处指定的目录为/tmp,tmp为linux系统的临时文件目录,会自动的定期清除,且该目录一直存在。无需手动清除文件上传产生的临时文件。

       或者指定到其他目录,在服务器上自己手动创建一个单独的文件上传目录。

3.修改tmpwatch 删除文件的逻辑,系统级别的命令,不建议操作

你可能感兴趣的:(在SpringBoot工程中使用MultipartFile类上传文件时报java.io.FileNotFoundExceprion)