我正在開發一個使用Struts 2.1.2和Hibernate 3.2.6.GA的Web應用程序。我有一個實體User
,我使用Hibernate將其映射到DB中的表USERS
。我想要一個與此實體關聯的圖像,我打算在數據庫中將其存儲爲BLOB
。我也想在網頁上顯示圖片以及User
的其他屬性。如何使用Struts 2 + Hibernate 3將圖像提供給瀏覽器?
我能想到的解決方案是有一個表IMAGES(ID, IMAGE)
其中IMAGE
是BLOB
列。 USERS
將有一個FK
列名爲IMAGEID
,它指向IMAGES
表。然後我將映射User
實體上的一個屬性,名爲imageId
作爲一個Long映射到這個IMAGEID
。當使用JSP呈現頁面時,我會將圖像添加爲<img src="images.action?id=1"/>
等,並且具有一個Action,它讀取圖像並將內容流式傳輸到瀏覽器,同時將頭部設置爲緩存圖像很長時間。
這項工作?渲染存儲在數據庫中的圖像是否有更好的方法?首先將這些圖像存儲在數據庫中是否正確?
我剛剛讀到,這不適用於IE,直到版本8發佈。此外,圖像不會在瀏覽器上緩存。所以,儘管編碼方便,我想我會使用我原來的方案。 – 2008-09-30 03:05:03
還記得對這種字符串的長度有一個(非常嚴格的)限制。從1k字符到100k取決於瀏覽器。 – 2011-12-28 14:33:24