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

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

概要

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

詳細情報

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

次の使用例は、イメージの HTTP ヘッダーを作成し、その後、ブラウザーに GIF を提供するために、SQL Serverの画像フィールドからバイナリ情報を使用します。

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

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

関連情報

Visual InterDev および Visual InterDev に関する最新のサポートActive Server Pagesサポート Visual InterDev を参照してください