2012-09-30 94 views
0

我使用Netbeans 7開發我的web項目。我需要將從客戶端接收的圖像存儲到web/images文件夾。檢索servletcontext路徑

String location = getServletContext().getRealPath("/images"); 

如果我用這個代碼,我得到的位置

C:\Users\Computer\Documents\NetBeansProjects\test\build\web\images 

但我需要在

C:\Users\Computer\Documents\NetBeansProjects\test\web\images 

我需要後來證明我的jsp頁面的圖像存儲所以這些圖像必須在web \ images文件夾中不是嗎??? ....

回答

0

是否絕對需要將它們存儲在部署文件夾中?如果人們上傳圖片,將它們存儲在數據庫中通常是更好的做法。 (如果它們很小)或者在與部署分開的目錄中。將它們存儲在部署中會導致它們在每次需要重新部署時都被擦除。如果你使用這條路線,我建議你需要編寫一個簡單的servlet,它能夠重新提供客戶從你存儲它們的地方提交的圖像。

如果您使用的是tomcat,您可以將文件存儲在任何你喜歡的地方。然後創建一個通過添加以下到您的server.xml文件通過主機上的所有請求所定義URL的特定目錄的過濾器:

<Context path="/clientrequestpath/images" docBase="/serverpath/images/" /> 

如果路徑是由瀏覽器發送的請求URL docBase是您在主機上本地存儲圖像的地方。在這種情況下,您不需要編寫servlet,只需將存儲在數據庫中的映像名稱添加到jsp中的標記,然後客戶端就會自動請求映像文件。

+0

所以我應該在哪裏存儲它then.I是隻存儲iamge位置database.If我需要從我的servlet獲得文件夾的位置,沒有給像 相對位置 C:\ Users \用戶計算機\文檔\的NetBeansProjects \測試\網絡\圖像 我將如何實現它。 – ntstha

+0

您必須將docBase路徑設置爲絕對路徑,以便您存儲圖像。不要將文件夾的位置存儲在數據庫中,只能存儲圖像的名稱。 –