Отображение изображений, хранящихся в поле BLOB

Оригинальная версия продукта: службы IIS
Исходный номер базы знаний: 173308

Сводка

С помощью активных серверных страниц (ASP) можно просматривать изображения, хранящиеся в полях BLOB (двоичный большой объект) в браузере. В этой статье содержатся сведения о том, как отобразить gif-изображение, хранящееся в pub_info примера таблицы базы данных Microsoft SQL Server.

Дополнительная информация

Большинство интернет-браузеров поддерживают отображение изображений GIF и JPEG. Чтобы отобразить изображение, браузер запрашивает его с веб-сервера. Сервер передает изображение в браузер в виде транзакции HTTP с заголовком HTTP, содержащим тип IMAGE/GIF MIME или IMAGE/JPEG. Это поведение можно имитировать с помощью активных серверных страниц.

В следующем примере создается http-заголовок для изображения, а затем используется двоичная информация из поля изображения в SQL Server для предоставления GIF-файла в браузер.

 FILE: SHOWIMG.ASP
 <%@ LANGUAGE="VBSCRIPT" %>
 <%
 ' Clear out the existing HTTP header information
 Response.Expires = 0
 Response.Buffer = TRUE
 Response.Clear

' Change the HTTP header to reflect that an image is being passed.
 Response.ContentType = "image/gif"

Set cn = Server.CreateObject("ADODB.Connection")
 ' The following open line assumes you have set up a System DataSource
 ' by the name of myDSN.
 ' Remember to change the following connection string parameters to reflect the correct values
 ' for your SQL server.
 cn.Open "DSN=myDSN;UID=<username>;PWD=<strong password>;DATABASE=pubs"
 Set rs = cn.Execute("SELECT logo FROM pub_info WHERE pub_id='0736'")
 Response.BinaryWrite rs("logo")
 Response.End
 %>

Этот скрипт отображает только изображение на экране. Если вы хотите отобразить изображение из документа HTML или ASP, необходимо ссылаться на этот скрипт в теге изображения. Например, если вы хотите отобразить это изображение с описанием подпись, можно использовать следующую HTML-страницу:

 <HTML>
     <HEAD><TITLE>Display Image</TITLE></HEAD>
     <BODY>
         This page will display the image New Moon Books from a SQL Server
         image field.<BR>
         <IMG SRC="SHOWIMG.ASP">
     </BODY>
 </HTML>

Примечание.

Сценарий ASP предполагает, что поле изображения (данные BLOB) в таблице SQL Server содержит необработанное ИЗОБРАЖЕНИЕ GIF. Интернет-браузеры предполагают, что необработанные данные GIF или JPEG следуют за заголовком HTTP. Если в данных BLOB содержится какая-либо излишняя информация, это будет передано этим скриптом, и изображение будет отображаться неправильно. Это становится важным, когда вы понимаете, что большинство методов размещения изображений в полях BLOB помещает дополнительную информацию в виде заголовков с изображением. Примерами этого являются Microsoft Access и Microsoft Visual FoxPro. Оба этих приложения сохраняют заголовки OLE в поле BLOB вместе с фактическими двоичными данными.

Этот метод также может применяться к другим типам двоичных данных, а не только к графике. Браузер должен знать, какой тип содержимого представляется. Для этого укажите правильный тип mime в переменной Response.ContentType. Например, если вы хотите просмотреть документ Word, следует задать ContentType = "application/msword".

Ссылки

Последние статьи базы знаний и другие сведения о поддержке visual InterDev и активных серверных страниц см. в разделе Поддержка Visual InterDev.