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

时间:2012-02-08 22:11:50

标签: image asp-classic filestream blobstore

我正在使用此示例以blob格式显示存储在启用File-Stream的数据库中的图像。

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数据放入“”标签中。这可能吗?也许我应该使用某种类型的转换?我已经考虑过这个,并放弃了。我只是尝试在“”标签中显示图像,但也没有成功。

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

提前谢谢。

1 个答案:

答案 0 :(得分:2)

通常它的工作方式如下:

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

中的图片

服务器应答ONE请求,设置MIME标头并流式传输此特定图像的图像数据。您没有输出HTML,html已经在页面中。您需要告诉img标记获取其数据的位置。

请参阅:Display JPEG using Response.BinaryWrite