`
liyunqi
  • 浏览: 18458 次
  • 性别: 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. }  
分享到:
评论

相关推荐

    Java从数据库中读取Blob对象图片并显示的方法

    2. **读取Blob图片字段**:从数据库表中读取包含Blob图片的记录。 3. **图片缩放**:对读取到的图片进行缩放处理,这可能需要用到`java.awt.image`包中的类,如`BufferedImage`、`AffineTransformOp`等。 4. **展示...

    oracle,weblogic读写blob

    Oracle 和 WebLogic 服务器在处理 BLOB(Binary Large Object)数据类型时,涉及的是数据库管理和Web应用程序中的数据存储与检索。BLOB 类型通常用于存储大量二进制数据,如图片、音频或视频文件。本篇文章将深入...

    C#在oracle中存取图片(web版)

    在这个案例中,我们将深入探讨如何使用C#编程语言在Oracle数据库中存储和检索图片,特别是在Web应用程序的上下文中。Oracle数据库以其稳定性和强大的功能而闻名,而C#作为.NET框架的一部分,为Web开发提供了丰富的...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob) (2).pdf

    在Oracle数据库中,有多种数据类型用于存储不同类型的数据,其中包括Long、Raw和Blob。这些字段类型各有其特性和用途。 1. Long类型:Long数据类型用于存储大文本数据,如用户简历(EMP_DESCLONG)。它能存储的最大...

    Struts2 Hibernate存取Oracle数据库中的BLOB数据.pdf

    Oracle数据库是企业级数据库中应用非常广泛的一个品牌,许多企业的MIS(管理信息系统)、ERP(企业资源计划)等核心系统都建立在Oracle数据库之上。Oracle数据库支持多种数据类型,其中专门用于存储大型数据的类型...

    jsp+servlet+oracle上传图片到数据库(非路径)

    在Servlet中,我们先读取上传文件的内容,然后将其转换为Blob对象,最后通过SQL语句插入到数据库的Blob字段中。 具体步骤如下: 1. **用户界面**:在JSP页面中,使用`&lt;input type="file"&gt;`元素让用户选择要上传的...

    从数据库读取图片文件

    当我们谈论“从数据库读取图片文件”时,通常涉及的是将图片作为BLOB(Binary Large Object)类型存储在数据库中,然后通过应用程序或API从数据库检索并显示这些图片。这一过程涉及到多个关键知识点,让我们逐一深入...

    图片存入数据库 图片 数据库

    在Oracle数据库中,可以使用SQL语句创建一个名为`test_img`的表,包含三个字段:`id`用于唯一标识图片,`name`存储图片名称,`pic`则用来存储图片的二进制数据。创建表的SQL语句如下: ```sql CREATE TABLE test_...

    SqlServer与Oracle保存与读取图片二进制流

    - **创建表结构**:在SQL Server中,可以创建一个包含BLOB字段的表,如`ImagesTable`,包含一个名为`ImageData`的`varbinary(max)`字段,用于存储图片的二进制数据。 - **保存图片**:通过读取图片文件并将其转换...

    struts2+jdbc实现图片的存储与显示(图片存储在数据库内)

    5. **图片的检索与显示**:在需要显示图片的地方,从数据库中查询出对应的记录,获取BLOB字段的数据。使用InputStream从BLOB中读取字节流,然后可以通过Response的输出流将这些字节写入HTTP响应,设置正确的Content-...

    图片以二进制保存到Oracle,取出并显示到页面示例

    本示例将探讨如何在Oracle数据库中以二进制格式存储图片,并随后从数据库中取出显示在网页上。Oracle数据库提供了BLOB(Binary Large Object)数据类型,专门用于存储大对象,如图像、音频文件或任何其他二进制数据...

    网页在Oracle中存取图片

    2. JDBC操作:使用Java的JDBC驱动程序,将图片数据插入到Oracle数据库的BLOB字段中。涉及SQL语句执行,以及PreparedStatement的setBinaryStream方法或setBlob方法。 三、图片从数据库取出 1. 查询图片:通过SQL查询...

    将图片以字节流存到数据库再从数据库获取显示

    当需要显示图片时,我们可以通过查询数据库,将BLOB字段的数据读取出来,再次转化为字节流。 ```java PreparedStatement pstmt = connection.prepareStatement("SELECT imageData FROM Images WHERE id = ?"); ...

    上传头像(图片)到数据库并显示出来--asp

    如果你选择将图片直接存储在数据库中,可以创建一个BLOB(Binary Large Object)类型的字段。如果是SQL Server,对应的可能是VARBINARY(MAX)。 一旦图片数据存入数据库,我们还需要一个机制来从数据库取出并显示。...

    数据库保存、读取图片

    "数据库保存、读取图片"这个主题涉及到如何将图片这种非结构化的数据以有效的方式存入数据库,以及如何从数据库中检索并显示出来。在本篇文章中,我们将深入探讨这个过程,并提供具体的实现方法。 首先,我们需要...

    计算机软件-商业源码-将图片写入数据库并显示.zip

    本项目“计算机软件-商业源码-将图片写入数据库并显示.zip”提供了一种将图片数据写入数据库并能有效显示的方法,这对于需要在数据库中管理多媒体资源的应用程序非常有价值。下面我们将详细讨论相关的知识点。 1. ...

    数据库读取二进制图片显示

    这篇文章将深入探讨如何在数据库中处理二进制图片,并提供一种显示它们的方法,供学习者参考。 首先,我们要理解图片本质上是二进制数据,通常以.jpg、.png或.gif等格式存在。这些文件由一系列0和1组成,代表图像的...

    SSH+Oracle上传图片

    本项目重点在于如何通过SSH框架将图片数据存储到Oracle数据库的Blob列中。以下是实现这一功能的关键步骤和技术细节: 1. **创建数据库表**: 在Oracle数据库中,我们首先需要创建一个包含图片数据的表。例如,创建...

    TEST-EMP-IMAGE.rar_oracle

    总结,"TEST-EMP-IMAGE.rar_oracle" 可能提供了一个完整的示例,展示如何在Oracle Forms应用中实现从文件系统读取图像,将其存储到Oracle数据库的BLOB字段中,并可能包含如何查询和显示这些图像的代码或指南。...

    图片以二进制存取数据库

    3. **创建表结构**:在数据库中创建一个能存储图片的表,包含一个BLOB字段,用于存放图片的二进制数据,可能还需要其他字段如图片ID、上传时间等。 4. **插入图片数据**:使用SQL INSERT语句,将二进制数据流插入到...

Global site tag (gtag.js) - Google Analytics