`
zhangfan822
  • 浏览: 256143 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

从数据库中读出图片并显示的示例代码

    博客分类:
  • java
阅读更多

从数据库中读出图片并显示的示例代码

<!--------servlet---------->

package Photo;
import javax.servlet. * ;
import javax.servlet.http. * ;
import java.io. * ;
import java.util. * ;
import java.lang. * ;
import java.sql. * ;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author zhangfan
 * @version 1.0
 */

public class ShowImage extends HttpServlet {
 private static final String CONTENT_TYPE = "image/*";
 /**
  * 定义数据库连接字符串,jdbc.odbc桥
  */
 private String driver_class = "oracle.jdbc.driver.OracleDriver";
 private String connect_string =
  "jdbc:oracle:thin:xxw/xxw@192.168.1.50:1521:ORCL";
 Connection conn = null;
 ResultSet rs = null;
 Statement stmt = null;
 /********************************************
  * 定义应用变量
  ******************************************/
 private String SQLString = ""; //定义查询语句\\r
 public String M_EorrMenage = ""; //定义错误信息变量
 private InputStream in = null; //定义输入流\\r
 private int len = 10 * 1024 * 1024; //定义字符数组长度

 //Initialize global variables
 public void init()throws ServletException {
  /**
   * 连接数据库\\r
   */
  try {
   Class.forName(driver_class);
  } catch (java.lang.ClassNotFoundException e) {
   //异常
   System.err.println("databean():" + e.getMessage());
  }
 }
 //Process the HTTP Get request
 public void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException,
 IOException {
  response.setContentType(CONTENT_TYPE);
  PrintWriter out = response.getWriter();
  //在数据库中的照片的ID
  int PHOTOID = 0;
  /*********************************************
   * 接受上文传递的图片ID号
   * 上文传输文件名称为photoid
   *********************************************/
  try {

   PHOTOID = Integer.parseInt(request.getParameter("photoid"));
   SQLString = "select * from xxw_photo where p_id=" + PHOTOID;

  } catch (Exception e) {
   e.printStackTrace();
   response.setContentType("text/html; charset=gb2312");
   M_EorrMenage = "请输入图片ID号";
   M_EorrMenage =
    new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
   out.println("<%@ page contentType=\'text/html; charset=gb2312\' %>");
   out.println("<html>");
   out.println("<head><title>id</title></head>");
   out.println("<body>");
   out.println("<p>" + M_EorrMenage + "</p>");
   out.println("</body></html>");

  }
  /*****************************************************
   * 执行查询语句\\r
   *****************************************************/
  try {
   conn = DriverManager.getConnection(connect_string);
   stmt = conn.createStatement();
   rs = stmt.executeQuery(SQLString);
  } //try
  catch (SQLException ex) {
   System.err.println("aq.executeUpdate:" + ex.getMessage());
   M_EorrMenage = "对不起,数据库无法完成此操作!";
   M_EorrMenage =
    new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
   response.setContentType("text/html; charset=gb2312");
   out.println("<html>");
   out.println("<head><title>no_database</title></head>");
   out.println("<body>");
   out.println("<p>" + M_EorrMenage + "</p>");
   out.println("</body></html>");

  }
  /*********************************************
   * 将图片流读入字符数组中,并显示到客户端
   ********************************************/
  try {
   if (rs.next()) {
    in = rs.getBinaryStream("photo");
    response.reset(); //返回在流中被标记过的位置
    response.setContentType("image/jpg"); //或gif等
    // int len=in.available();//得到文件大小
    OutputStream toClient = response.getOutputStream();
    byte[]P_Buf = new byte[len];
    int i;
    while ((i = in.read(P_Buf)) != -1) {
     toClient.write(P_Buf, 0, i);
    }
    in.close();
    toClient.flush(); //强制清出缓冲区\\r
    toClient.close();
   } else {
    M_EorrMenage = "无此图片!";
    M_EorrMenage =
     new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
    response.setContentType("text/html; charset=gb2312");
    out.println("<html>");
    out.println(
     "<head><title>this photo isn\'t have</title></head>");
    out.println("<body>");
    out.println("<p>" + M_EorrMenage + "</p>");
    out.println("</body></html>");
   }
   rs.close();
  } catch (Exception e) {
   e.printStackTrace();
   M_EorrMenage = "无法读取图片!";
   M_EorrMenage =
    new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
   response.setContentType("text/html; charset=gb2312");
   out.println("<%@ page contentType=\'text/html; charset=gb2312\' %>");
   out.println("<html>");
   out.println("<head><title>no photo</title></head>");
   out.println("<body>");
   out.println("<p>" + M_EorrMenage + "</p>");
   out.println("</body></html>");
  }
 }

 //Clean up resources
 public void destroy() {
  try {
   conn.close();
  } catch (SQLException e) {
   System.err.println("aq.executeUpdate:" + e.getMessage());
   M_EorrMenage = "对不起,数据库无法完成此操作!";
  }
 }
}

 显示代码:

<!---------------------------显示---------------------------------------------->

<html>
	<head>
		<title>Untitled Document</title>
	</head>
	<body bgcolor="#FFFFFF" text="#000000">
		<table>
		<%
		int i=1;
		while(i<3){
		%>
		<tr> 
			<td colspan="3">
				<img border="1" alt=从数据库中读出图片并显示的示例代码 src="http://192.168.1.50:8100/ShowImage?photoid=<%=i%>">
			</td>
		</tr>
		<%
		i++;
		}
		%>
		</table>
	</body>
</html>

 

分享到:
评论
2 楼 ljh1060144965 2017-04-20  
[url]
引用
:P
[/url]
1 楼 海马欢动 2017-04-19  
  

相关推荐

    图片存入数据库和从数据库中读出

    从数据库中读取图片并显示则涉及以下步骤: 1. **查询数据库**:使用SQL的`SELECT`语句,根据需求获取包含图片数据的记录。 2. **获取图片数据**:从查询结果中提取出BLOB字段的值,这通常是一个字节数流。 3. **...

    利用oci从数据库中读出图片,并保存在本地

    在这个场景中,我们需要使用oci来从OracleDB数据库中读取存储的图片数据,并将其保存到本地文件系统。 OracleDB是Oracle公司推出的高性能、高可用性的关系型数据库管理系统,它支持各种类型的数据,包括常见的文本...

    将数据库图像读出并显示

    当图像数据被存储在数据库中时,为了能够正确地读取并显示这些图像,我们需要掌握一些特定的技术和方法。本篇将详细介绍如何从数据库中读取图像数据并将其在网页上展示。 首先,让我们了解一下数据库中的图像存储...

    pb中从数据库读出blob,然后用word打开

    在探讨如何在PB(PowerBuilder)环境中从数据库读取BLOB数据并利用Word进行处理之前,我们先简要回顾一下BLOB(Binary Large Object)的基本概念。BLOB是一种用于存储大量二进制数据的数据类型,如图像、音频、视频...

    hadoop与mysql数据库相连读出数据.pdf

    "hadoop与mysql数据库相连读出数据.pdf" 本文主要介绍了使用Hadoop...本文提供了一个使用Hadoop读取MySQL数据库中的数据的示例代码。我们可以根据需要修改数据库连接语句、用户名、密码等信息,以便在实际应用中使用。

    上传图片文件到数据库并读出vs2005+MsSql2000

    在.NET开发环境中,Visual Studio ...以上步骤和代码片段为你提供了一个基本的框架,实现从VS2005上传图片到MsSql2000数据库,以及如何从数据库读取并显示图片。实际应用中,你可能需要根据具体需求进行调整和优化。

    数据库加图片保存与显示

    这里提供一个简化的代码片段,展示如何从数据库读取图片并显示: ```cpp CDatabase db; if (!db.OpenEx("DSN=MyAccessDB", CDatabase::noOdbcDialog)) { // 处理连接失败 } CRecordset rs(&db); rs.Open...

    易语言数据库中图片全操作

    6. **源码分析**:"数据库中图片全操作易语言源码"可能包含了实现上述功能的代码示例,包括连接数据库、执行SQL、读取BLOB数据、转换为图片、显示或保存图片等步骤。通过阅读和理解这些源码,开发者可以学习到如何在...

    VB运用SQL语句读取显示数据库中的数据

    在VB(Visual Basic)编程中,访问和操作数据库是常见的任务,尤其是对于初学者来说,了解如何使用SQL语句从Access数据库中读取并显示数据是基础技能之一。本实例将详细讲解如何实现这一功能。 首先,我们需要引入...

    delph,完成数组保存数据库,并读出数据库数据到数组,使用数据流方式。

    在Delphi编程环境中,数据库操作是一项常见的任务,而将数组保存到数据库以及从数据库中读取数据至数组,可以通过...在压缩包文件"数据库二进制大类保存+读取"中,可能包含了具体的示例代码或教程,供学习者参考实践。

    易语言数据库edb到超级列表框快速显示

    资源界面可能包含示例代码、步骤说明和运行效果截图,帮助初学者快速理解和上手。 总结起来,本资源聚焦于易语言数据库操作和用户界面设计,特别是如何将edb数据与超级列表框结合,以实现数据的动态展示。这对于想...

    jsp操作mysql数据库的blob字段

    5. **步骤二:从MySQL中读出文件并输出**: - **查询数据**:使用PreparedStatement执行SELECT语句,获取Blob字段。 - **获取Blob对象**:通过ResultSet的`getBlob()`方法获取Blob对象。 - **创建OutputStream**...

    一个解决BMP和JPE图像在数据库储存和读出原码

    标题中的“一个解决BMP和JPE图像在数据库储存和读出原码”指的是一个编程解决方案,用于处理BMP和JPEG格式的图像在数据库中的存储和检索问题。这两种格式是常见的数字图像格式,BMP(Bitmap)是无损的位图格式,而...

    易语言源码树型框读出EDB数据库.rar

    本压缩包文件“易语言源码树型框读出EDB数据库.rar”正是基于易语言开发的一个示例项目,主要展示了如何使用易语言来操作EDB数据库,并通过树型框(TreeView)进行数据展示。 EDB数据库是由韩国ECLIPSE公司开发的一...

    ASP.NET下上传图片到数据库,并且读出图片的代码(详细版)

    需要注意的是,示例代码中由于OCR扫描识别错误或漏识别,需要开发者根据上下文进行合理的理解和修正。在实际开发过程中,应确保代码的完整性和正确性,以及对用户上传的图片进行必要的验证和清理,防止潜在的攻击...

    c# 数据库 图片 读写

    例如,在网站开发中,通常的做法是将图片存储在服务器上,并仅将图片的路径(绝对地址)保存在数据库中。这种方式可以减少数据库的压力,提高系统性能。然而,在某些特定情况下,如需要确保数据的高度一致性或是为了...

    Java读取txt数据入数据库然后读出使用POI创建excel

    在Java编程中,将TXT文件的数据导入到数据库并利用Apache POI库创建Excel文件是一项常见的任务,特别是在数据处理和分析的场景中。Apache POI是一个流行的API,它允许程序员读写Microsoft Office格式的文件,包括...

    Delphi 如何将二维数组数据 以Blob 存入数据库中 并读取 工程

    在 Delphi 开发中,有时候我们需要处理大量的二维数组数据,并将其存储到数据库中。...在实践中,可以参考提供的“如何将二维数据存数据库Blob”项目文件,里面可能包含了具体的示例代码和详细步骤。

    DWORD 格式作为 DATE_AND_TIME 变量从 DB 中读出

    本文将详细介绍如何将DWORD格式的数据作为DATE_AND_TIME变量从数据库中读出,并提供具体的实现步骤。 ### DWORD格式简介 DWORD是一种32位的数据类型,通常用于存储整数值。在不同的编程环境或操作系统中,DWORD的...

Global site tag (gtag.js) - Google Analytics