1. 程式人生 > >解決:tomcat重新部署會刪除臨時檔案以及臨時資料夾

解決:tomcat重新部署會刪除臨時檔案以及臨時資料夾

是這樣的,當我們需要上傳檔案到伺服器的時候,如果沒有經驗的同學可能是會把檔案儲存在tomcat這樣的伺服器裡面,比如我們的WebRoot目錄下面,但是這樣做的後果就是,如果我們重新部署tomcat伺服器的時候,會刪除臨時生成的檔案以及資料夾,也就是說,會刪除我們上傳的檔案,這樣的話我們每次重新部署,上次上傳的檔案就沒有了……,我這裡的解決方案是這樣的,直接將檔案儲存在tomcat伺服器之外,也就是說,儲存在磁碟上的某一塊區域中,但是,怎麼樣才能讓使用者通過tomcat伺服器訪問到我們的磁碟上的檔案呢?在Windows下,我們需要開啟tomcat的/conf/server.xml檔案,在Host節點下新增一句程式碼

<Context path="/upload" docBase="g:/upload"  reloadable="true"/>

這句程式碼的意思是,當我們訪問/upload這個url的時候,會指向我們本地磁碟上的g:/upload這個資料夾。

這裡我舉個例子,我的使用者頭像檔案是儲存在g:/upload/portrait目錄下的,那麼我們使用者表中儲存頭像檔案的地址應該是upload/portrait/xxx.jpg,這樣在html中就可以直接獲取到了,但是我們在伺服器中儲存檔案的時候可不是將檔案儲存在upload/portrait/xxx.jpg地址下,而是在g:/upload/portrait目錄下,也就是說,我們需要把這個路徑儲存在配置檔案中,因為將來把工程部署到linux伺服器上的時候,就沒有g盤這個概念了。部署到linux系統上之後,再把g;/upload/portrait改為/usr/local/upload/portrait,注意,這裡我們最好自己新建一個/usr/local/upload/portrait目錄,並且設定許可權,不然有可能因為許可權問題導致無法將檔案儲存到該目錄下。

在linux下新增的程式碼略有區別,如果完全按照windows一樣的程式碼是不行的,我試過……

<Context path='/upload' docBase='/usr/local/upload' crossContext='true' trusted='true'/>