`
liuzhiqiang19890403
  • 浏览: 60966 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

查询BLOB(图片)并通过流方式写入页面

阅读更多
//通过oracle中获取BLOB字段并且将BLOB字段中的图片显示在页面中。(流)
ResultSet rsset = null;
PreparedStatement pstmt = null; 
Connection conn = null; 
try { 
Class.forName("oracle.jdbc.driver.OracleDriver"); 
conn = DriverManager.getConnection 
("jdbc:oracle:thin:@10.1.7.79:1521:tjkf", "yhm", "mm");
String sql = "select FILE_CONTENT from UPLOAD_FILE u where u.ID = ?";
  pstmt = conn.prepareStatement(sql);
  pstmt.setString(1, zdz);
  rsset=pstmt.executeQuery();
  while(rsset.next())
{
   Blob blob=rsset.getBlob(1);
//获取blob字段==转化为流
    InputStream reader=blob.getBinaryStream(); 
   OutputStream writer = null;
try {
         //获取页面输出流,进行页面内容的写出
writer = response.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
byte buf[]=new byte[1024];
try {
for(int i=0;(i=reader.read(buf))>0;){
          //将读取的blob字段的流输出到页面中/通过页面输出流
          writer.write(buf,0,i);
    }
} catch (IOException e) {
e.printStackTrace();
}
  }
  } catch (ClassNotFoundException e) { 
   e.printStackTrace(); 
  } catch (SQLException e) { 
   e.printStackTrace(); 
} finally { 
    //关闭流
   try {
if(rsset != null) { 
     rsset.close(); 
rsset = null; 
}
    if(pstmt != null) { 
     pstmt.close(); 
     pstmt = null; 
    } 
    if(conn != null) { 
     conn.close(); 
     conn = null; 
    } 
   } catch (SQLException e) { 
    e.printStackTrace(); 
   } 
  } 
}
//将byte类型数组转化为Char类型数组
private char[] getChars (byte[] bytes) {
      Charset cs = Charset.forName ("UTF-8");
      ByteBuffer bb = ByteBuffer.allocate (bytes.length);
      bb.put (bytes);
      bb.flip ();
      CharBuffer cb = cs.decode (bb);
 
   return cb.array();
}
分享到:
评论

相关推荐

    Access数据库里二进制数据读取,并显示为图片.rar

    本主题聚焦于Access数据库中如何处理二进制大数据(Blob,Binary Large Object),特别是如何从数据库中读取这些二进制数据并将其显示为图片。 Access数据库中的二进制数据通常存储在“OLE对象”或“附件”字段中,...

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

    可以使用流式处理技术,如Oracle的`Blob.getBinaryStream()`方法,以流的方式读取和写入数据。 标签“源码”和“工具”提示我们,这个示例可能包含了具体的代码示例或使用了特定的工具来完成这项任务。在实际开发中...

    asp图片添加到数据库的字段中

    "调用"是指后续从数据库中取出图片并展示给用户。这涉及到查询数据库获取图片的二进制数据,再将其输出到浏览器。在ASP中,可以使用Response.BinaryWrite方法将从数据库读取的二进制数据写入HTTP响应,浏览器接收到...

    ASP代码实现图片上传到数据库中

    - 提供一个提交按钮,通过POST方式将数据发送到服务器。 2. ASP处理文件上传: - 在服务器端,ASP代码需要解析接收到的POST请求。ASP内置的对象Request可以用来获取表单数据。 - 使用Request对象的Form集合来...

    JS选取图片压缩转码例子及完整源码(JAVA)

    本文将深入探讨一个使用JavaScript选取图片并进行压缩转码的极品例子,以及其背后的Java完整源码。这个例子对于优化用户体验,减少服务器存储空间和网络传输负载非常有用。 首先,"JS选取图片"指的是利用HTML5的...

    图片的存取

    本主题将深入探讨如何在SQL Server中存储图片并使用ASP.NET框架通过流的方式将其读取到网页上。以下是一些关键知识点: 1. **图片存储**: - 通常有三种方式存储图片:直接在数据库中存储二进制数据、存储图片路径...

    C#实现图片存到数据库.rar

    要从数据库中检索图片并显示,可以创建一个ASP.NET Web Forms页面(.aspx)。在代码-behind(.cs)文件中,获取图片的二进制数据,并将其写入响应流,设置正确的MIME类型,这样浏览器就能识别并显示图片。 ```...

    h5_流文件_javascript_

    这个库利用了Service Worker和Fetch API,创建一个可写入的Blob流,使得数据可以直接写入用户的本地文件系统,而不是通过传统的HTTP下载机制。使用StreamSaver.js,开发者可以在前端处理大量数据,避免内存溢出,并...

    asp.net实现从数据库中下载以二进制存储的图片

    - 将图片数据写入HTTP响应流中。 ```csharp public class ImageHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { int picId = Convert.ToInt32(context.Request.QueryString["id"])...

    图片与base64互相转换工具

    - 存储:在数据库中存储小尺寸的图片时,可以用Base64编码代替二进制BLOB字段。 5. **Base64ToImage.exe**: - 提到的`Base64ToImage.exe`可能是一个工具,用于图形用户界面方式执行Base64与图片之间的转换。 - ...

    asp上传图片两种方法

    在ASP(Active Server Pages)开发中,图片上传是常见的功能之一,主要分为两种方式:将图片保存到服务器的文件夹中和将图片数据存储到数据库中。这两种方法各有优缺点,下面将详细介绍这两种方法及其实施步骤。 ##...

    Imaupdate.rar

    这可以通过查询数据库获取图片的BLOB数据,然后将其转换为OutputStream,发送到客户端。浏览器会自动根据Content-Type响应头解析并显示图片。 最后,安全性是不可忽视的一环。在处理文件上传时,应防止SQL注入,...

    网上拍卖系统

    在拍卖系统中,商品图片以Blob类型存储在数据库中,这需要利用数据库的Blob字段类型,并通过流式读取技术来处理图片数据,确保数据能够正确地写入和读取。 4. **流读取图片**:在Java中,流是用来处理数据的,特别...

    ASP.net接收图片

    这个场景中,我们讨论的是如何接收客户端通过POST方式提交的图片数据,并在服务器端进行处理和保存。首先,我们需要理解HTTP协议中的POST请求,它是客户端向服务器发送数据的主要方法之一,常用于提交表单或者上传...

    利用Java程序实现Oracle数据库中大对象的存取.pdf

    "利用Java程序实现Oracle数据库中大对象的存取" ...使用Java程序实现Oracle数据库中大对象的存取可以通过jdbc驱动程序连接Oracle数据库,并使用PreparedStatement对象执行SQL语句,实现对大对象的存储和读取。

    从客户端下载保存在数据库中的图像

    图片数据会被转化为字节流并存储在数据库的BLOB字段中。 - **性能优化**:存储图像可能会占用大量空间,影响数据库性能。可以考虑使用分区、索引和存储过程来优化查询效率。 - **备份与恢复**:确保定期备份数据库...

    普通方式和Ext方式导出Excel代码

    通过创建`HSSFWorkbook`对象,添加工作表,设置单元格数据,最后将其写入到OutputStream,服务端就能生成一个Excel文件。客户端接收到HTTP响应后,会自动下载这个文件。 接下来,我们讨论Ext方式导出Excel。Ext是一...

    js利用IE通过windowopen方式保存网页部分内容到本地

    4. **设置字符集并关闭文档流**:确保文档的字符集设置正确,然后调用`document.close()`来关闭文档流,这是在执行保存操作前必须的步骤。 5. **执行保存命令**:最后,通过`document.execCommand('SaveAs')`命令弹...

    ASP,NET源码——[上传下载]达达电子书下载系统(生成shtml)版.zip

    系统可能使用数据库存储电子书信息,如书名、作者、简介、封面图片等,并为每个电子书生成一个唯一的下载链接。SHTML(Server Side Include Document)是一种服务器端的脚本语言,用于在HTML页面中插入动态内容,...

Global site tag (gtag.js) - Google Analytics