2010-03-19 4 views
2

Я отображение изображения, как это:Дисплей JPEG с использованием Response.BinaryWrite

<img src='counter.asp'> 

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

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

ответ

-4

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

+3

Ответ ниже упоминая ADODB.Stream * должна * быть принятым один. –

+0

Почему это принято? – Lankymart

1

вы можете просто перенаправить counter.asp на изображение, которое вы хотите ..

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

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

Смотрите ADODB.Stream MSDN Library:
http://msdn.microsoft.com/en-us/library/ms675032(VS.85).aspx

Вот пример, который я нашел из экспертов биржи, а также:

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