`
liyunqi
  • 浏览: 18457 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

把图片从oracle数据库的blob字段中取出来,显示在浏览器上

阅读更多

转载自:http://heisetoufa.iteye.com/blog/227245

 

关键字: 显示 浏览器 图片

上两篇文章我发的一个是把图片从硬盘存到数据库里,和把图片从数据库里取出来存在硬盘上,这次再发个把图片从数据库里取出来直接显示在浏览器上,而不保存在硬盘上

先贴个在jsp里用的

Html代码 复制代码
  1. <%@ page language="java" pageEncoding="gbk" contentType="image/jpeg" import="java.awt.image.*,java.sql.*,com.sun.image.codec.jpeg.*,java.util.*,javax.imageio.*,java.io.*"%>  
  2.   
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>  
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>  
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>  
  7.   
  8.   
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  10. <html:html lang="true">  
  11.   <head>  
  12.     <html:base />  
  13.        
  14.     <title>EPhotoDis.jsp</title>  
  15.   
  16.  <meta http-equiv="pragma" content="no-cache">  
  17.  <meta http-equiv="cache-control" content="no-cache">  
  18.  <meta http-equiv="expires" content="0">       
  19.  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  20.  <meta http-equiv="description" content="This is my page">  
  21.  <!--  
  22.  <link rel="stylesheet" type="text/css" href="styles.css">  
  23.  -->  
  24.   
  25.   </head>  
  26.      
  27.   <body>  
  28.   
  29. <%   
  30.  // Create image   
  31.  String username,password,url;   
  32.  Connection conn = null;   
  33.  Statement stmt = null;   
  34.  BufferedInputStream inputimage=null;   
  35.  username="dzjc";   
  36.  password="dzjc";   
  37.  url ="jdbc:oracle:thin:@192.168.1.134:1521:zhpt";   
  38.  Class.forName("oracle.jdbc.driver.OracleDriver");   
  39.  conn=DriverManager.getConnection(url,username,password);   
  40.  stmt=conn.createStatement();   
  41.     
  42.  boolean defaultCommit = conn.getAutoCommit();   
  43.  conn.setAutoCommit(false);   
  44.     
  45.  try    
  46.  {   
  47.     
  48.   ResultSet rs = stmt.executeQuery("SELECT img FROM dzjc_img");   
  49.     
  50.   while (rs.next())    
  51.   {   
  52.    oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("img");   
  53.    inputimage = new BufferedInputStream(blob.getBinaryStream());   
  54.   }   
  55.  }    
  56.  catch (Exception ex)    
  57.  {   
  58.   System.out.println("blobRead()'s exception"+ex);   
  59.   conn.rollback();   
  60.   throw ex;   
  61.  }   
  62.  conn.setAutoCommit(defaultCommit);   
  63.     
  64.  // Send back image   
  65.  BufferedImage image = null;   
  66.  try   
  67.  {   
  68.   image = ImageIO.read(inputimage);   
  69.  }   
  70.  catch(IOException e)   
  71.  {   
  72.   System.out.println(e);   
  73.  }   
  74.  ServletOutputStream sos = response.getOutputStream();   
  75.  JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);   
  76.  encoder.encode(image);   
  77.  inputimage.close();   
  78.  /*/**/   
  79. %>  
  80.   
  81.   </body>  
  82. </html:html>  
<%@ page language="java" pageEncoding="gbk" contentType="image/jpeg" import="java.awt.image.*,java.sql.*,com.sun.image.codec.jpeg.*,java.util.*,javax.imageio.*,java.io.*"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <html:base />
    
    <title>EPhotoDis.jsp</title>

 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">    
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
  
  <body>

<%
 // Create image
 String username,password,url;
 Connection conn = null;
 Statement stmt = null;
 BufferedInputStream inputimage=null;
 username="dzjc";
 password="dzjc";
 url ="jdbc:oracle:thin:@192.168.1.134:1521:zhpt";
 Class.forName("oracle.jdbc.driver.OracleDriver");
 conn=DriverManager.getConnection(url,username,password);
 stmt=conn.createStatement();
 
 boolean defaultCommit = conn.getAutoCommit();
 conn.setAutoCommit(false);
 
 try 
 {
 
  ResultSet rs = stmt.executeQuery("SELECT img FROM dzjc_img");
 
  while (rs.next()) 
  {
   oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("img");
   inputimage = new BufferedInputStream(blob.getBinaryStream());
  }
 } 
 catch (Exception ex) 
 {
  System.out.println("blobRead()'s exception"+ex);
  conn.rollback();
  throw ex;
 }
 conn.setAutoCommit(defaultCommit);
 
 // Send back image
 BufferedImage image = null;
 try
 {
  image = ImageIO.read(inputimage);
 }
 catch(IOException e)
 {
  System.out.println(e);
 }
 ServletOutputStream sos = response.getOutputStream();
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
 encoder.encode(image);
 inputimage.close();
 /*/**/
%>

  </body>
</html:html>

  

再来个在action里用的

Java代码 复制代码
  1. package struts.action;   
  2.   
  3. import java.awt.image.BufferedImage;   
  4. import java.io.BufferedInputStream;   
  5. import java.io.IOException;   
  6. import java.sql.Connection;   
  7. import java.sql.DriverManager;   
  8. import java.sql.ResultSet;   
  9. import java.sql.SQLException;   
  10. import java.sql.Statement;   
  11.   
  12. import javax.imageio.ImageIO;   
  13. import javax.servlet.ServletOutputStream;   
  14. import javax.servlet.http.HttpServletRequest;   
  15. import javax.servlet.http.HttpServletResponse;   
  16.   
  17. import org.apache.struts.action.Action;   
  18. import org.apache.struts.action.ActionForm;   
  19. import org.apache.struts.action.ActionForward;   
  20. import org.apache.struts.action.ActionMapping;   
  21.   
  22. import com.sun.image.codec.jpeg.JPEGCodec;   
  23. import com.sun.image.codec.jpeg.JPEGImageEncoder;   
  24.   
  25. public class EnrolRushRedLightPhotoManagePhotoDisplayAction extends Action    
  26. {   
  27.         public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response)    
  28.  {   
  29. //   Create image   
  30.   String username,password,url;   
  31.   Connection conn = null;   
  32.   Statement stmt = null;   
  33.   BufferedInputStream inputimage=null;   
  34.   username="dzjc";   
  35.   password="dzjc";   
  36.   url ="jdbc:oracle:thin:@192.168.1.134:1521:zhpt";   
  37.      
  38.   try    
  39.   {   
  40.    Class.forName("oracle.jdbc.driver.OracleDriver");   
  41.    try    
  42.    {   
  43.     conn=DriverManager.getConnection(url,username,password);   
  44.     stmt=conn.createStatement();   
  45.     boolean defaultCommit = conn.getAutoCommit();   
  46.     conn.setAutoCommit(false);   
  47.     ResultSet rs = stmt.executeQuery("SELECT img FROM dzjc_img");   
  48.        
  49.     while (rs.next())    
  50.     {   
  51.      oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("img");   
  52.      inputimage = new BufferedInputStream(blob.getBinaryStream());   
  53.     }   
  54.     conn.setAutoCommit(defaultCommit);   
  55.    }    
  56.    catch (SQLException e)    
  57.    {   
  58.     e.printStackTrace();   
  59.     System.out.println("blobRead()'s exception"+e);   
  60.     try    
  61.     {   
  62.      conn.rollback();   
  63.      throw e;   
  64.     }    
  65.     catch (SQLException e1)    
  66.     {   
  67.      e1.printStackTrace();   
  68.     }   
  69.    }   
  70.   }    
  71.   catch (ClassNotFoundException e1)    
  72.   {   
  73.    e1.printStackTrace();   
  74.   }   
  75.   
  76.   // Send back image   
  77.   BufferedImage image = null;   
  78.   try  
  79.   {   
  80.    image = ImageIO.read(inputimage);   
  81.    ServletOutputStream sos = response.getOutputStream();   
  82.    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);   
  83.    encoder.encode(image);   
  84.    inputimage.close();   
  85.   }   
  86.   catch(IOException e)   
  87.   {   
  88.    System.out.println(e);   
  89.   }   
  90.   return mapping.findForward("display");   
  91.  }   
  92. }  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics