BLOB フィールドに格納されている画像を表示する

元の製品バージョン:インターネット インフォメーション サービス
元の KB 番号: 173308

概要

Active Server Pages (ASP) を使用すると、インターネット ブラウザーの BLOB (バイナリ ラージ オブジェクト) フィールドに格納されているイメージを表示できます。 この記事では、Microsoft SQL Server サンプル データベース テーブル pub_infoに格納されている GIF イメージを表示する方法について説明します。

詳細

ほとんどのインターネット ブラウザーでは、GIF 画像と JPEG 画像の表示がサポートされています。 イメージを表示するために、ブラウザーは Web サーバーにイメージを要求します。 サーバーは、 または IMAGE/JPEGの MIME タイプIMAGE/GIFを含む HTTP ヘッダーを使用して、HTTP トランザクションとしてイメージをブラウザーに渡します。 この動作は、Active Server Pages でシミュレートできます。

次の例では、イメージの 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 スクリプトは、SQL Server テーブル内のイメージ フィールド (BLOB データ) に生の GIF イメージが含まれていることを前提としています。 インターネット ブラウザーでは、生の GIF または JPEG データが HTTP ヘッダーに従うことを前提としています。 BLOB データに余分な情報が含まれている場合、これはこのスクリプトによって渡され、イメージは正しく表示されません。 これは、BLOB フィールドにイメージを配置するほとんどの方法で、画像を含むヘッダーの形式で追加情報が配置されることを認識するときに重要になります。 その例としては、Microsoft Access と Microsoft Visual FoxPro があります。 どちらのアプリケーションも、実際のバイナリ データと共に BLOB フィールドに OLE ヘッダーを保存します。

この手法は、グラフィックスだけでなく、他の種類のバイナリ データにも適用できます。 ブラウザーは、表示されているコンテンツの種類を把握する必要があります。 これを行うには、Response.ContentType 変数に適切な mime 型を指定します。 たとえば、単語文書を表示する場合は、ContentType = "application/msword" を設定します。

関連情報

Visual InterDev および Active Server Pages に関する最新のサポート 情報とサポート情報については、「 Visual InterDev のサポート」を参照してください。