使用Response.BinaryWrite显示JPEG

时间:2010-03-19 23:01:23

标签: vbscript asp-classic binarywriter

我正在显示如下图像:

<img src='counter.asp'>

counter.asp 正在点击计数器确定图像的显示频率(我将用modrewrite网址替换它。)

问题:在 counter.asp 脚本中,我需要将实际的.jpg图像发送到浏览器。怎么可以这样做?我想我需要通过FSO加载图像,然后使用Response.BinaryWrite发送它 - 任何想法?

3 个答案:

答案 0 :(得分:10)

要读取和输出二进制文件,只需使用ADODB.Stream对象即可。

请参阅ADODB.Stream MSDN Library:
http://msdn.microsoft.com/en-us/library/ms675032(VS.85).aspx

以下是我从Experts Exchange发现的一个例子:

Function ReadBinaryFile(strFileName) 
        on error resume next 
        Set oStream = Server.CreateObject("ADODB.Stream") 
        if Err.Number <> 0 then 
                ReadBinaryFile=Err.Description 
                Err.Clear 
                exit function 
        end if 
        oStream.Type = 1  
        oStream.Open 

        oStream.LoadFromFile strFileName 
        if Err.Number<>0 then 
                ReadBinaryFile=Err.Description 
                Err.Clear 
                exit function 
        end if 
        ReadBinaryFile=oStream.Read 
        oStream.Close 
        set oStream = nothing 
        if Err.Number<>0 then ReadBinaryFile=Err.Description 
End Function  

答案 1 :(得分:1)

您只需将counter.asp重定向到所需的图片即可。

<%
response.redirect("/virtual/path/to/yourimage.jpg")
%>

答案 2 :(得分:-4)

FSO无法加载二进制文件,只能加载文本。您将需要使用第3方组件。