从ACCESS数据库中读取Images
2009-01-05 11:23 Hundre 阅读(8775) 评论(0) 编辑 收藏 举报当浏览器遇到一个<IMG>标志时,它会根据你设定的src属性来下载文件。这可能是一个图形文件或则是一个ASP页面。如果是一个返回gif二进制的ASP页面,浏览器需要知道返回的是什么格式的图形文件。因为这个原因,就需要指定content type,为image/gif,image/bmp ,image/jpeg或则其他什么的。
Response.contentType = "image/*"
“*”表示显示所有支持的图片类型类型
代码如下,假设图片数据库为image.mdb
Code
将以上代码保存为一个ASP文件,假设为showPicture.asp,现在再新建一个测试页面,设名字为test.asp,内容如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<img src="showPicture.asp?id=123" />
</body>
</html>
</html>
注:这里加上id这个参数是因为代码中使用了这个参数来确定要显示数据库中的哪一幅图片,如果代码中不要根据ID号来选择要显示的图片去掉即可
网上有很多朋友说显示的时候在图片框内看到的是一个大红的叉,刚开始我也是这种情况,我自己找到的解决方法是:在从数据库里面读出图片的二进制数据是先不要直接写入response数据流中,而是存入一个变量里面,然后再把这个变量写入response的数据流,如下
picSize = rec.fields(0).ActualSize
vary = rec.fields(0).getChunk(picSize)
Response.BinaryWrite vary
个人儒见,欢迎拍砖 :)