2012-04-26 70 views
0

圖像的Blob類型正在到達JSP頁面,但是它的格式不可讀。如何在Mysql中顯示struts2中的圖像blob類型Db

服務方法:

Iterator itr = list.iterator(); 
if (itr.hasNext()) { 
    Membersdetails get = (Membersdetails) itr.next(); 
    repCurrentImage = get.getRepPicture(); 
} 
return repCurrentImage; 

&我的Action類:

repCurrentImage = sdf.getrepImage(loginId); 

最後我的JSP頁面:

<img src="<s:property value="repCurrentImage"/> 
+0

你如何顯示圖像。在表格中或者您想要在頁面上呈現它。 – 2012-04-26 07:49:54

+0

在數據庫中存儲文件是不好的設計。我建議將'file-name'或'file-id'存儲在數據庫中,並僅從文件系統中選擇文件。 – tusar 2012-04-26 09:32:54

+0

@tusar是怎麼回事?我見過的基準測試顯示邊際性能差異,它避免了容器各自管理文件系統的一些平臺特定問題。 – Quaternion 2012-04-26 09:50:31

回答

1

它看起來就像你正在試圖嵌入的內容圖像直接進入JSP ...這不會工作,你只能提供一個網址(最好的建設使用struts2 url標籤,它將引用將返回流結果並採取所需參數來選擇圖像的操作)。

這個問題/答案則表示所使用的渲染圖片這樣的結果類型的動作:How to display image(bolb type) in jsp page from mySql DB in Struts 2 using Hibernate

我是我的經驗,良好的DB數據類型是MEDIUMBLOB,具有更小的東西截斷的形象變成了一個問題(你只會看到文件的第一部分,因爲這是所有可以存儲的,儘管它可能是生產中最好的,以確保該文件適合!)。

+0

+ 1爲漂亮的示例鏈接@Quaternion先生顯示它。關於我對不良設計的評論,我沒有想到跨平臺依賴。謝謝你的清理。其實我有這樣的看法,即文件系統在存儲和檢索文件時總是比數據庫更快。 – tusar 2012-04-26 10:15:13

+0

是的,我做到了...... – 2012-04-27 03:35:57

+0

新代碼:if(itr.hasNext()) { Membersdetails get =(Membersdetails)itr.next(); repCurrentSignature = get.getRepSignature(); HttpServletResponse res = ServletActionContext.getResponse(); res.setContentType(「multipart/form-data」); ServletOutputStream out = res.getOutputStream(); out.write(repCurrentSignature); out.flush(); } – 2012-04-27 03:37:12

相關問題