SpringBoot項目的The temporary upload location ***is not valid 問題

springboot項目,部署到服務器後,運行一段時間後,處理一些文件上傳的接口時,後報異常。

Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7333297176951596407.9000/work/Tomcat/localhost/ROOT] is not valid。

查閱資料後,發現是centos對'/tmp'下文件自動清理的原因。

在springboot項目啓動後,系統會在‘/tmp’目錄下自動的創建幾個目錄(我的項目是以下的文件夾):

       1, hsperfdata_root,

        2,tomcat.************.8080,(結尾是項目的端後)

       3,tomcat-docbase.*********.8080。

Multipart(form-data)的方式處理請求時,默認就是在第二個目錄下創建臨時文件的。

  這篇文章對自動清理文件有很好的說明http://blog.51cto.com/kusorz/2051877?utm_source=oschina-app。

處理方式:改變臨時文件的存儲路徑。如下:

@Configuration
public class MultipartConfig {

    /**
     * 文件上傳臨時路徑
     */
    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        String location = System.getProperty("user.dir") + "/data/tmp";
        File tmpFile = new File(location);
        if (!tmpFile.exists()) {
            tmpFile.mkdirs();
        }
        factory.setLocation(location);
        return factory.createMultipartConfig();
    }
}

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