如何在ADODB.stream对象的网页上显示图像

时间:2015-03-03 01:20:58

标签: asp-classic

我有一个经典的ASP问题。 我需要在我的网页上显示图片。 但由于安全原因,我不能简单地将我的所有图像放在我的网站文件夹中的图像文件夹中,我需要将它们放在我的网站文件夹之外。 例如,我的网站文件夹位于: C:\的Inetpub \ wwwroot的\ mysite的\ 但我需要将图像(我想在我的网页上显示)放在: C:\ IMAGES \

我正在尝试使用ADODB.stream对象使用ASP vb代码提取图像,如下所示:

<%
Response.ContentType = "image/png"
Set adoStream = Server.CreateObject("ADODB.Stream") 
adoStream.Open
adoStream.Type = 1
FPath = "C:\images\1.png"
adoStream.LoadFromFile FPath

Response.BinaryWrite adoStream.Read 

adoStream.Close
Set adoStream = Nothing 
Response.End
%> 

当我在Internet Explorer中启动此网页时,该页面显示用于下载图像文件的文件下载窗口/消息&#34; 1.png&#34;而不是在网页上显示图像。 如何修复代码以在网页上显示图像而不是下载图像文件?

1 个答案:

答案 0 :(得分:1)

该代码生成一个图像作为返回类型,因此没有HTML来显示图像,如果你直接调用这段代码称它为image.asp那么你会做这样的事情。另一个显示HTML的页面。

<img src="image.asp" />

这将调用您的代码并输出原始图像二进制文件,因为这是<img>所期望的。

如果要从文件系统或数据库生成多个图像,请传递查询字符串参数,例如?id=yourimage,并更改代码以选择不同的图像。