JSP讀取Oracle數據庫里的圖片Blob字段並顯示在頁面上


1.java代碼:

 
         
 1 /**
 2      * 打印模板獲取電子簽名
 3      * @param request
 4      * @param resp
 5      * @param id
 6      * @return
 7      * @throws Exception 
 8      */
 9     @RequestMapping(value = "jzgx/getImage", method = RequestMethod.GET)
10     public void getImage(HttpServletRequest request, HttpServletResponse response,String id){
11         String sql = "SELECT SIGNATURE FROM RDP_PSIGNATURE P WHERE P.USER_ID = '"+id+"'";
12         OutputStream os = null;
13         try {
14             RecordSet rs = OperDbUtil.getRecordSet(sql);
15             os = response.getOutputStream();
16             //設定輸出文件頭
17             response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(id,"UTF-8"));
18             //設置響應頭
19             response.setContentType("image/"+id+";charset=utf-8");
20             if(rs.next()){
21                 byte[] buf = rs.getBlob(1);
22                 if(buf == null) return;
23                 //清空輸出流    
24                 response.reset();            
25                 os.write(buf);
26             }
27         } catch (Exception e) {
28             e.printStackTrace();
29         }
30         //釋放資源
31         finally{
32             try {
33                 os.close();
34             } catch (IOException e) {
35                 e.printStackTrace();
36             }
37         }
38     }
 
         

 

 
OperDbUtil是一個我們公司自己寫的工具類,沒有可以用
1 Connection conn = DBManager.getConnection();3   PreparedStatement ps = null;
4   ResultSet rs = null;
5   InputStream is = null;
6   OutputStream os = null;
7    ps = conn.prepareStatement(sql);
8    rs = ps.executeQuery();

來執行sql語句。

 
 

2.jsp頁面:

1 <%
2 String path = request.getContextPath();
3 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
4 %>
5 ...   
6 ...
7 ...
8 <td><img src="<%=basePath%>jzgx/getImage.sd?id=${user1.id}" /></td>

跟網上大多數的不一樣,僅供參考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM