SpringBoot 上传文件时本地路径无效

SpringBoot 通过网关Zuul进行附件上传的时候,有时会出现如下错误

[Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io .IOException: The temporary upload location [/tmp/tomcat.3814974221022613431.8080/work/Tomcat/localhost/ROOT] is not valid] with root causejava.io .IOException: The temporary upload location [/tmp/tomcat.3814974221022613431.8080/work/Tomcat/localhost/ROOT] is not valid 

 

错误产生的原因:

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

 

2.程序对文件的操作时:会生成临时文件,暂存在临时文件中;长时间不操作,导致/tmp下面的tomcat临时文件目录被删除,

且删除的文件不可恢复,上传文件时获取不到文件目录,报错

解决方式有以下几点:

1、重启服务;

2、网关是否引入spring-boot-starter-web依赖,若无,则将其引入;

3、设置spring.servlet.multipart.enabled:true

4、修改上传文件默认的BaseDir


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章