从数据库中读出图片并显示的示例代码
<!--------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>
相关推荐
从数据库中读取图片并显示则涉及以下步骤: 1. **查询数据库**:使用SQL的`SELECT`语句,根据需求获取包含图片数据的记录。 2. **获取图片数据**:从查询结果中提取出BLOB字段的值,这通常是一个字节数流。 3. **...
在这个场景中,我们需要使用oci来从OracleDB数据库中读取存储的图片数据,并将其保存到本地文件系统。 OracleDB是Oracle公司推出的高性能、高可用性的关系型数据库管理系统,它支持各种类型的数据,包括常见的文本...
当图像数据被存储在数据库中时,为了能够正确地读取并显示这些图像,我们需要掌握一些特定的技术和方法。本篇将详细介绍如何从数据库中读取图像数据并将其在网页上展示。 首先,让我们了解一下数据库中的图像存储...
"hadoop与mysql数据库相连读出数据.pdf" 本文主要介绍了使用Hadoop...本文提供了一个使用Hadoop读取MySQL数据库中的数据的示例代码。我们可以根据需要修改数据库连接语句、用户名、密码等信息,以便在实际应用中使用。
在.NET开发环境中,Visual Studio ...以上步骤和代码片段为你提供了一个基本的框架,实现从VS2005上传图片到MsSql2000数据库,以及如何从数据库读取并显示图片。实际应用中,你可能需要根据具体需求进行调整和优化。
这里提供一个简化的代码片段,展示如何从数据库读取图片并显示: ```cpp CDatabase db; if (!db.OpenEx("DSN=MyAccessDB", CDatabase::noOdbcDialog)) { // 处理连接失败 } CRecordset rs(&db); rs.Open...
6. **源码分析**:"数据库中图片全操作易语言源码"可能包含了实现上述功能的代码示例,包括连接数据库、执行SQL、读取BLOB数据、转换为图片、显示或保存图片等步骤。通过阅读和理解这些源码,开发者可以学习到如何在...
在探讨如何在PB(PowerBuilder)环境中从数据库读取BLOB数据并利用Word进行处理之前,我们先简要回顾一下BLOB(Binary Large Object)的基本概念。BLOB是一种用于存储大量二进制数据的数据类型,如图像、音频、视频...
在VB(Visual Basic)编程中,访问和操作数据库是常见的任务,尤其是对于初学者来说,了解如何使用SQL语句从Access数据库中读取并显示数据是基础技能之一。本实例将详细讲解如何实现这一功能。 首先,我们需要引入...
在Delphi编程环境中,数据库操作是一项常见的任务,而将数组保存到数据库以及从数据库中读取数据至数组,可以通过...在压缩包文件"数据库二进制大类保存+读取"中,可能包含了具体的示例代码或教程,供学习者参考实践。
资源界面可能包含示例代码、步骤说明和运行效果截图,帮助初学者快速理解和上手。 总结起来,本资源聚焦于易语言数据库操作和用户界面设计,特别是如何将edb数据与超级列表框结合,以实现数据的动态展示。这对于想...
5. **步骤二:从MySQL中读出文件并输出**: - **查询数据**:使用PreparedStatement执行SELECT语句,获取Blob字段。 - **获取Blob对象**:通过ResultSet的`getBlob()`方法获取Blob对象。 - **创建OutputStream**...
标题中的“一个解决BMP和JPE图像在数据库储存和读出原码”指的是一个编程解决方案,用于处理BMP和JPEG格式的图像在数据库中的存储和检索问题。这两种格式是常见的数字图像格式,BMP(Bitmap)是无损的位图格式,而...
需要注意的是,示例代码中由于OCR扫描识别错误或漏识别,需要开发者根据上下文进行合理的理解和修正。在实际开发过程中,应确保代码的完整性和正确性,以及对用户上传的图片进行必要的验证和清理,防止潜在的攻击...
例如,在网站开发中,通常的做法是将图片存储在服务器上,并仅将图片的路径(绝对地址)保存在数据库中。这种方式可以减少数据库的压力,提高系统性能。然而,在某些特定情况下,如需要确保数据的高度一致性或是为了...
在Java编程中,将TXT文件的数据导入到数据库并利用Apache POI库创建Excel文件是一项常见的任务,特别是在数据处理和分析的场景中。Apache POI是一个流行的API,它允许程序员读写Microsoft Office格式的文件,包括...
本压缩包文件“易语言源码树型框读出EDB数据库.rar”正是基于易语言开发的一个示例项目,主要展示了如何使用易语言来操作EDB数据库,并通过树型框(TreeView)进行数据展示。 EDB数据库是由韩国ECLIPSE公司开发的一...
在 Delphi 开发中,有时候我们需要处理大量的二维数组数据,并将其存储到数据库中。...在实践中,可以参考提供的“如何将二维数据存数据库Blob”项目文件,里面可能包含了具体的示例代码和详细步骤。
本文将详细介绍如何将DWORD格式的数据作为DATE_AND_TIME变量从数据库中读出,并提供具体的实现步骤。 ### DWORD格式简介 DWORD是一种32位的数据类型,通常用于存储整数值。在不同的编程环境或操作系统中,DWORD的...