Отображение изображений, хранящихся в поле 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.