Показать JPEG с помощью Response.BinaryWrite - PullRequest
2 голосов
/ 20 марта 2010

Я показываю изображение вот так:

<img src='counter.asp'>

counter.asp выполняет счетчик посещений, чтобы определить частоту отображения изображения (я заменю его URL-адресом modrewrite).

Проблема: в скрипте counter.asp мне нужно отправить фактическое .jpg изображение в браузер. Как это можно сделать? Я полагаю, мне нужно загрузить изображение через FSO, а затем отправить его с помощью Response.BinaryWrite - есть идеи?

Ответы [ 3 ]

10 голосов
/ 09 апреля 2010

Для чтения и вывода двоичного файла вы можете просто использовать объект ADODB.Stream.

См. Библиотеку ADODB.Stream MSDN:
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 голос
/ 21 марта 2010

Вы можете просто перенаправить counter.asp на нужное изображение ..

<%
response.redirect("/virtual/path/to/yourimage.jpg")
%>
0 голосов
/ 20 марта 2010

FSO не может загрузить двоичный файл, только текст. Вам нужно будет использовать сторонний компонент.

...