(springmvc)從oracle讀取blob類型圖片並在jsp中顯示

        最近工做中遇到從數據庫中讀取blob類型的圖片,並在頁面顯示的問題,想了下,大概有兩種方式,一是將數據轉換成文件,保存在本地,而後將文件地址傳到前臺頁面,讀取保存的圖片文件;二是將文件轉換成數據流,直接在頁面顯示,我以爲第二個方法比較簡單,並且處理速度更快點。下面我將個人操做過程記錄下來,給你們一個參考。html

        思路、步驟:java

        1:從數據庫讀取blob圖片
spring

        2:轉換成數據流
數據庫

        3:顯示在頁面
mvc


首先,咱們在springmvc中創建一個controller方法app

@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,下面咱們要在頁面顯示spa

<!-- 獲取id爲1的blob類型圖片,定義寬128,高185 -->
<img src="<%=request.getContextPath()%>/toolUtil/getPhoto_Blob.xhtml?id=1" width="128" height="185"/>

步驟3就完成了,如今你的圖片就能夠在頁面顯示了,簡單方便。code


代碼手打,不免有漏字、錯字、描述不清現象,歡迎你們批評指教,切勿人身攻擊,若是以爲有用,就告訴我一聲,給我點鼓勵。orm

相關文章
相關標籤/搜索