2013-03-25 66 views
2

我用java,tomcat的,JSF和primefaces保存圖像數據庫或服務器目錄

,我在我的產品表中有一個重要的「形象」,我倒要問你,這是更好:保存在數據庫或服務器一個目錄圖像

如果第二種情況是最好的,請更多的如何管理它解釋我(我從來沒有機會見到這種情況下)

預先感謝您

+0

你的圖像有多大? [**要BLOB或不BLOB **](http://research.microsoft.com/apps/pubs/default.aspx?id=64525)討論了在決定是否存儲圖像時應考慮的一些因素在數據庫或文件系統中......即使它是爲了與您正在使用的不同的堆棧而編寫的。 – 2013-03-25 23:26:25

+1

看看[這裏](http://stackoverflow.com/q/3748/1530938)方向 – kolossus 2013-03-26 01:11:09

+0

在我的愚蠢觀點有圖像數據庫過載數據庫和服務器。我使用第三方服務器目錄來存儲具有良好性能且非常便宜的圖像(Amazon S3)。 – Damian 2013-03-26 18:48:07

回答

0

是否要將圖像二進制文件保存在數據庫中將圖像文件保存在服務器目錄中取決於您的需要。

永無止境的辯論仍在繼續,您可以輕鬆地找到幾個關鍵筆畫。

這裏是我如何做到這一點(第二種方法),它從來沒有讓人失望我:
假設你正在建設一個電子商務網站,並希望託管賣家上傳的圖片,例如產品圖片和後來告訴他們。

  1. 物理節省您的服務器你的戰爭以外上傳的圖片文件。讓我們假設該目錄是/baseFolder/和文件的完整路徑是/baseFolder /路徑/到/圖片。 jpg
  2. 在Tomcat中添加虛擬主機讓您http://localhost:8080/imageBase/所指向的物理目錄/baseFolder/。還有很多其他的方法來做這種映射。
  3. 在數據庫中存儲相對路徑/path/to/image.jpg。所以,當你想要顯示它時,你可以簡單地說:<img src="#{webappRoot}/baseFolder/#{pathRetrievedFromDatabase}"/>。在這種情況下,它將是<img src="#{webappRoot}/baseFolder/path/to/image.jpg"/>

當然有很多不同的方法來實現同樣的事情。 這是我能想到解釋如何管理的最簡單方法。
希望它有幫助。