2012-07-26 50 views
1

所以,我正在開發使用Spring框架的簡單Web應用程序。Java Web App上傳和加載圖像

應用程序用戶可以上傳圖像。

什麼是存儲/加載圖像的最佳做法?

我在某個論壇上找到解決方案,有人建議將文件存儲到user.dir目錄。

好吧,我也這麼做。

當用戶上傳圖像時,我將圖像存儲到user.dir目錄。

現在,我有一個問題:如何將圖像從user.dir目錄加載到頁面?

<img src="path/to/dir/where/images/stored"/> 

回答

0

最佳實踐確實是將這些數據存儲在webapp的樹之外,以避免重新部署時出現問題。確切地說,它們存儲的地方更多是一個慣例,user.dir確實是一個合理的選擇。

你不能直接發球雖然這些文件,通常它是通過創建映射到例如images/*是解析請求URL一個servlet進行(例如<img src="approot/images/apic.jpg"/>),並基於該URL如果取和服務path/to/dir/where/images/stored/apic.jpg。作爲一個額外的好處,servlet可以讓你完全控制什麼被下載,什麼時候以及由誰來完成,也許你在後面的應用程序生命週期中需要這種控制。

您可以使用getPathInfo來檢索servlet名稱後的URL部分,爲輸出設置正確的MIME類型,並將請求的文件流式複製到servlet的輸出。

一個對公衆開放,很好地解釋了這種可以在BalusC's blog

0

我們最近在我們的項目中的一個類似的情況可以發現一個servlet的例子,所以我們決定把所有的用戶配置文件圖片存儲在應用程序的文件夾中DIR。然後在我們的servlet實現中,我們檢索了文件夾的路徑,以便我們可以在那裏存儲一個img後,在那裏存儲一個獨立於平臺的實現。我們將動態生成的img名稱與其他配置文件詳細信息一起存儲在db中,因此存儲和檢索只是一個如果我們需要更改img的目錄,我們需要做的就是更新路徑變量的值。

希望它有幫助

一切順利。 .. !!!