使用经典ASP的T-SQL显示BLOB图像

使用经典ASP的T-SQL显示BLOB图像

问题描述:

我正在使用此示例以blob格式显示存储在启用了文件流的数据库中的图像。使用经典ASP的T-SQL显示BLOB图像

http://support.microsoft.com/kb/173308

这是工作完美,但我是在传统的ASP很糟糕,有问题时,试图显示此图像与HTML元素混合。

从我的测试和尝试,我得出结论,这是因为Response.ContentType。

在上面的示例中,要显示他们正在使用图像的内容类型的图像。完善。我也有这个在我的数据库中。但是,当我从那里读取它并在asp文件中更改它时,asp文件中的整个HTML都不会显示。

我应该怎么做才能显示混合了HTML标签的图像。这是我可怜的asp代码的一部分,它将只显示数据库中的一张图片,而不会显示其他HTML。

SQL = "SELECT RecordID FROM InfoTable" 

Set Recordset = Server.CreateObject("ADODB.Recordset") 

Recordset.Open SQL,AdapterDataBaseActiveConnection 

If Recordset.EOF Then 

    Response.Write("No records returned.") 

Else 

    Do While NOT Recordset.Eof 

     Set CurrentNumber=Recordset("RecordID") 

     'Response.write CurrentNumber 
     'Response.write "<br>" 
     Set rs = AdapterDataBaseActiveConnection.Execute("SELECT ContentType FROM InfoTable WHERE RecordID="&CurrentNumber) 
     Set CurrentContentType=rs("ContentType") 

     'Response.write CurrentContentType 
     Response.Expires = 0 
     Response.Buffer = TRUE 
     Response.Clear 
     Response.ContentType = CurrentContentType 

     Set rsa = AdapterDataBaseActiveConnection.Execute("SELECT RecordBLOB FROM ImageTable WHERE RecordID="&CurrentNumber) 
     'Response.write "<div>" 
     Response.BinaryWrite rsa("RecordBLOB") 
     'Response.write "</div>" 

     Recordset.MoveNext 

    Loop 

End If  

我最终的目标是将blob数据放入“”标签。这可能吗?也许我应该使用某种类型的转换?我已经考虑过了,放弃了。我只是尝试在“”标签中显示图像,但没有成功。

请给我一些建议,关于在这种情况下应该如何处理。

预先感谢您。

+0

+9000提醒我1995年:)。即使在“现代”技术中,你所做的也是提供一个'src'到另一个页面,将数据直接复制到输出。你不能'内联' - 它必须通过另一个请求来完成。 – 2012-02-08 22:19:24

+1

谢谢你提醒我我多大了。 :P – 2012-02-08 22:21:26

+0

如果您真的想要这样做,您可以在http://www.webmasterworld.com/forum83/7473.htm中找到相关信息。 – 2012-02-08 22:25:06

通常是这样工作的:

这是在页面<img src="imageServer.asp?ID=1234">

服务器回答一个请求的图像,设置MIME头和这个特定的图像流的图像数据。你不输出HTML,HTML已经在页面中。你需要告诉img标签从哪里获取数据。

参见:Display JPEG using Response.BinaryWrite