asp如何显示存储在数据库BLOB字段中的图像?
时间:2010-06-08 09:31:00
如何显示存储在BLOB字段中的图像?
showimges.asp
' 在浏览器上单独显示图像
<%@ LANGUAGE=″VBSCRIPT″ %>
<%
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
' 清除已经存在的HTTP header信息
Response.ContentType = "image/gif"
' 将HTTP header置为image/gif,表示传送的将是图像信息
Set cn = Server.CreateObject(″ADODB.Connection″)
' 根据指定的数据源名(myDSN)将数据取出
cn.Open "DSN=myDSN;UID=sa;PWD=;DATABASE=pubs"
Set rs = cn.Execute("SELECT photo FROM people WHERE id='3302'″)
Response.BinaryWrite rs("photo")
Response.End
%>
我将上面的代码加入到IMAGE标记中,以实现将图像从SQL Server取出并插入到合适的HTML或ASP页面中:
showimges.htm
<HTML>
<HEAD>
<TITLE>asp教程之图像显示 - aspxhome.com</TITLE>
</HEAD>
<BODY>
<IMG SRC="showimges.asp">
</BODY>
</HTML>
可为什么有些时候图像不能正确显示,而有些时候就能显示呢?
这种情况我想可能会发生在直接用MS Access 或 MS Visual FoxPro作为图像数据输入工具时遇到。其根本原因正如你在问题的开始说的,“从SQL Server的BLOB字段Photo中取出.GIF图像的二进制数据,构造出一个HTTP Header……”,问题就在这里:
在ASP中,认为从BLOB字段中取出的图像数据是原始的.GIF或.JPEG格式的二进制数据流,而浏览器也认做在HTTP Header之后所得到的数据是原始的.GIF或.JPEG格式的二进制数据流。这时,如果在BLOB字段中再包含有其它的信息的话,那么这个图像就不能正确显示出来。因为,在作为图像数据输入工具时,在存储图像数据的同时,会在实际的图像数据之前加上OLE信息,然后再一起存放到BLOB字段中。
当然,我们用这个显示图像的办法,也可以举一反三,处理存放在 BLOB字段中其它的二进制数据,如:只要将Response.ContentType设置为“application/msword”,告诉浏览器数据的类型,就可以将存放在BLOB字段中的Word文档在用户端的浏览器中显示出来。


猜你喜欢
IIRF(Ionic's Isapi Rewrite Filt er)入门,在IIS上重写Url
Python cv2 图像自适应灰度直方图均衡化处理方法

Python爬虫之网络请求

微软建议的ASP性能优化28条守则(6)
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
SQL Server 2005通用分页存储过程及多表联接应用
Python中asyncore异步模块的用法及实现httpclient的实例
Golang中omitempty关键字的具体实现
python 安装移动复制第三方库操作

python redis连接 有序集合去重的代码
和server XMLHTTP相关的几个函数
python 二维矩阵转三维矩阵示例
Keras loss函数剖析
本机安装PaddlePaddle安装指南及步骤详解

JS 类型转换常见方法小结
用面包屑来简化多层的tabs
对python中各个response的使用说明

JavaScript实现Tab标签页切换的最简便方式(4种)

python3格式化字符串 f-string的高级用法(推荐)
pyqt5 从本地选择图片 并显示在label上的实例
