MultipartFile報No such file or directory

原因:當使用MultipartFile做上傳操作時,
1:spring是先將上傳文件存放在一個臨時地址,默認/tmp目錄下
2:進入controller進行業務操作
linux環境中/tmp目錄是存放臨時文件的,當這個目錄下的子目錄10天之內,沒有使用過,linux就會將目錄刪掉,然後上傳文件時就會在第一步發生異常(我遇到就是這種問題)

2020-02-10 10:17:51.058 [6fa786300462c02fadfe427e24c4f79e] ERROR [http-nio-9345-exec-10] com.weihui.merchant.wallet.web.aop.ExceptionAdvice :Global error:{}
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. /tmp/cavale/upload_08517793_352f_4bf6_b5ad_15ceeee0e0a9_00000033.tmp (No such file or directory)
at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:165) ~[spring-web-4.0.6.RELEASE.jar:4.0.6.RELEASE]
at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:142) ~[spring-web-4.0.6.RELEASE.jar:4.0.6.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1067) ~[spring-webmvc-4.0.6.RELEASE.jar:4.0.6.RELEASE]

修改方式:第一種方式:將linux下的存放應用的臨時文件的那個子目錄,非/tmp目錄,設置爲不刪除 tmpwatch命令
第二種方式:設置MultipartConfig的location,將臨時文件的存放地址,改爲非/tmp目錄

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