代码改变世界

从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>

 

注:这里加上id这个参数是因为代码中使用了这个参数来确定要显示数据库中的哪一幅图片,如果代码中不要根据ID号来选择要显示的图片去掉即可

网上有很多朋友说显示的时候在图片框内看到的是一个大红的叉,刚开始我也是这种情况,我自己找到的解决方法是:在从数据库里面读出图片的二进制数据是先不要直接写入response数据流中,而是存入一个变量里面,然后再把这个变量写入response的数据流,如下

picSize = rec.fields(0).ActualSize

vary 
= rec.fields(0).getChunk(picSize)

Response.BinaryWrite vary


个人儒见,欢迎拍砖 :)