次の方法で共有


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

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

まとめ

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

詳細

ほとんどのインターネット ブラウザーでは、GIF 画像と JPEG 画像の表示がサポートされています。 イメージを表示するために、ブラウザーは Web サーバーからイメージを要求します。 サーバーは、またはIMAGE/GIFの MIME タイプを含む 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 に関する最新のサポート技術情報の記事とその他のサポート情報については、「 Support Visual InterDev」を参照してください。