转载自:http://heisetoufa.iteye.com/blog/227245
关键字: 显示 浏览器 图片
上两篇文章我发的一个是把图片从硬盘存到数据库里,和把图片从数据库里取出来存在硬盘上,这次再发个把图片从数据库里取出来直接显示在浏览器上,而不保存在硬盘上
先贴个在jsp里用的
- <%@ 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">
-
-
-
-
-
</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>
<%@ 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里用的
- package struts.action;
-
-
import java.awt.image.BufferedImage;
-
import java.io.BufferedInputStream;
-
import java.io.IOException;
-
import java.sql.Connection;
-
import java.sql.DriverManager;
-
import java.sql.ResultSet;
-
import java.sql.SQLException;
-
import java.sql.Statement;
-
-
import javax.imageio.ImageIO;
-
import javax.servlet.ServletOutputStream;
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
-
import org.apache.struts.action.Action;
-
import org.apache.struts.action.ActionForm;
-
import org.apache.struts.action.ActionForward;
-
import org.apache.struts.action.ActionMapping;
-
-
import com.sun.image.codec.jpeg.JPEGCodec;
-
import com.sun.image.codec.jpeg.JPEGImageEncoder;
-
-
public class EnrolRushRedLightPhotoManagePhotoDisplayAction extends Action
- {
-
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response)
- {
-
- 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";
-
-
try
- {
-
Class.forName("oracle.jdbc.driver.OracleDriver");
-
try
- {
- conn=DriverManager.getConnection(url,username,password);
- stmt=conn.createStatement();
-
boolean defaultCommit = conn.getAutoCommit();
-
conn.setAutoCommit(false);
-
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());
- }
- conn.setAutoCommit(defaultCommit);
- }
-
catch (SQLException e)
- {
- e.printStackTrace();
-
System.out.println("blobRead()'s exception"+e);
-
try
- {
- conn.rollback();
-
throw e;
- }
-
catch (SQLException e1)
- {
- e1.printStackTrace();
- }
- }
- }
-
catch (ClassNotFoundException e1)
- {
- e1.printStackTrace();
- }
-
-
-
BufferedImage image = null;
-
try
- {
- image = ImageIO.read(inputimage);
- ServletOutputStream sos = response.getOutputStream();
- JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
- encoder.encode(image);
- inputimage.close();
- }
-
catch(IOException e)
- {
- System.out.println(e);
- }
-
return mapping.findForward("display");
- }
- }
分享到:
相关推荐
2. **读取Blob图片字段**:从数据库表中读取包含Blob图片的记录。 3. **图片缩放**:对读取到的图片进行缩放处理,这可能需要用到`java.awt.image`包中的类,如`BufferedImage`、`AffineTransformOp`等。 4. **展示...
Oracle 和 WebLogic 服务器在处理 BLOB(Binary Large Object)数据类型时,涉及的是数据库管理和Web应用程序中的数据存储与检索。BLOB 类型通常用于存储大量二进制数据,如图片、音频或视频文件。本篇文章将深入...
在这个案例中,我们将深入探讨如何使用C#编程语言在Oracle数据库中存储和检索图片,特别是在Web应用程序的上下文中。Oracle数据库以其稳定性和强大的功能而闻名,而C#作为.NET框架的一部分,为Web开发提供了丰富的...
在Oracle数据库中,有多种数据类型用于存储不同类型的数据,其中包括Long、Raw和Blob。这些字段类型各有其特性和用途。 1. Long类型:Long数据类型用于存储大文本数据,如用户简历(EMP_DESCLONG)。它能存储的最大...
Oracle数据库是企业级数据库中应用非常广泛的一个品牌,许多企业的MIS(管理信息系统)、ERP(企业资源计划)等核心系统都建立在Oracle数据库之上。Oracle数据库支持多种数据类型,其中专门用于存储大型数据的类型...
在Servlet中,我们先读取上传文件的内容,然后将其转换为Blob对象,最后通过SQL语句插入到数据库的Blob字段中。 具体步骤如下: 1. **用户界面**:在JSP页面中,使用`<input type="file">`元素让用户选择要上传的...
当我们谈论“从数据库读取图片文件”时,通常涉及的是将图片作为BLOB(Binary Large Object)类型存储在数据库中,然后通过应用程序或API从数据库检索并显示这些图片。这一过程涉及到多个关键知识点,让我们逐一深入...
在Oracle数据库中,可以使用SQL语句创建一个名为`test_img`的表,包含三个字段:`id`用于唯一标识图片,`name`存储图片名称,`pic`则用来存储图片的二进制数据。创建表的SQL语句如下: ```sql CREATE TABLE test_...
- **创建表结构**:在SQL Server中,可以创建一个包含BLOB字段的表,如`ImagesTable`,包含一个名为`ImageData`的`varbinary(max)`字段,用于存储图片的二进制数据。 - **保存图片**:通过读取图片文件并将其转换...
5. **图片的检索与显示**:在需要显示图片的地方,从数据库中查询出对应的记录,获取BLOB字段的数据。使用InputStream从BLOB中读取字节流,然后可以通过Response的输出流将这些字节写入HTTP响应,设置正确的Content-...
本示例将探讨如何在Oracle数据库中以二进制格式存储图片,并随后从数据库中取出显示在网页上。Oracle数据库提供了BLOB(Binary Large Object)数据类型,专门用于存储大对象,如图像、音频文件或任何其他二进制数据...
2. JDBC操作:使用Java的JDBC驱动程序,将图片数据插入到Oracle数据库的BLOB字段中。涉及SQL语句执行,以及PreparedStatement的setBinaryStream方法或setBlob方法。 三、图片从数据库取出 1. 查询图片:通过SQL查询...
当需要显示图片时,我们可以通过查询数据库,将BLOB字段的数据读取出来,再次转化为字节流。 ```java PreparedStatement pstmt = connection.prepareStatement("SELECT imageData FROM Images WHERE id = ?"); ...
如果你选择将图片直接存储在数据库中,可以创建一个BLOB(Binary Large Object)类型的字段。如果是SQL Server,对应的可能是VARBINARY(MAX)。 一旦图片数据存入数据库,我们还需要一个机制来从数据库取出并显示。...
"数据库保存、读取图片"这个主题涉及到如何将图片这种非结构化的数据以有效的方式存入数据库,以及如何从数据库中检索并显示出来。在本篇文章中,我们将深入探讨这个过程,并提供具体的实现方法。 首先,我们需要...
本项目“计算机软件-商业源码-将图片写入数据库并显示.zip”提供了一种将图片数据写入数据库并能有效显示的方法,这对于需要在数据库中管理多媒体资源的应用程序非常有价值。下面我们将详细讨论相关的知识点。 1. ...
这篇文章将深入探讨如何在数据库中处理二进制图片,并提供一种显示它们的方法,供学习者参考。 首先,我们要理解图片本质上是二进制数据,通常以.jpg、.png或.gif等格式存在。这些文件由一系列0和1组成,代表图像的...
本项目重点在于如何通过SSH框架将图片数据存储到Oracle数据库的Blob列中。以下是实现这一功能的关键步骤和技术细节: 1. **创建数据库表**: 在Oracle数据库中,我们首先需要创建一个包含图片数据的表。例如,创建...
总结,"TEST-EMP-IMAGE.rar_oracle" 可能提供了一个完整的示例,展示如何在Oracle Forms应用中实现从文件系统读取图像,将其存储到Oracle数据库的BLOB字段中,并可能包含如何查询和显示这些图像的代码或指南。...
3. **创建表结构**:在数据库中创建一个能存储图片的表,包含一个BLOB字段,用于存放图片的二进制数据,可能还需要其他字段如图片ID、上传时间等。 4. **插入图片数据**:使用SQL INSERT语句,将二进制数据流插入到...