標籤:
最近工作中遇到從資料庫中讀取blob類型的圖片,並在頁面顯示的問題,想了下,大概有兩種方式,一是將資料轉換成檔案,儲存在本地,然後將檔案地址傳到前台頁面,讀取儲存的圖片檔案;二是將檔案轉換成資料流,直接在頁面顯示,我覺得第二個方法比較簡單,而且處理速度更快點。下面我將我的操作過程記錄下來,給大家一個參考。
思路、步驟:
1:從資料庫讀取blob圖片
2:轉換成資料流
3:顯示在頁面
首先,我們在springmvc中建立一個controller方法
@RequestMapping("/toolUtil/")public class ToolUtil{ @AutoWired private ToolUtilManager toolUtilManager;//持久層 /** * 擷取圖片 * @param request * @param response */ @RequestMapping("getPhoto_Blob") public void getPhoto_Blob(HttpServletRequest request,HttpServletResponse response){ String id = request.getParameter("id"); //這個我就不詳細寫了,就是通過傳遞的id查詢你要顯示的圖片 Map resultMap = toolUtilManager.getPhoto_Blob(id) //blob就是你要顯示的那張圖片 Blob blob = (Blob) resultMap.get("Photo"); InputStream in = null;try { in = blob.getBinaryStream(); OutputStream out = response.getOutputStream(); data = new byte[(int)blob.length()]; int i = 0; while((i=in.read(data))!=-1){ out.write(data); } out.close(); in.close();} catch (Exception e) { e.printStackTrace();} } }
好了,這就是controller裡的方法,這幾行程式碼完成步驟1和步驟2,下面我們要在頁面顯示
<!-- 擷取id為1的blob類型圖片,定義寬128,高185 --><img src="<%=request.getContextPath()%>/toolUtil/getPhoto_Blob.xhtml?id=1" width="128" height="185"/>
步驟3就完成了,現在你的圖片就可以在頁面顯示了,簡單方便。
代碼手打,難免有漏字、錯字、描述不清現象,歡迎大家批評指教,切勿人身攻擊,如果覺得有用,就告訴我一聲,給我點鼓勵。
(springmvc)從oracle讀取blob類型圖片並在jsp中顯示