Anzeigen von Bildern, die in einem BLOB-Feld gespeichert sind

Ursprüngliche Produktversion: Internetinformationsdienste
Ursprüngliche KB-Nummer: 173308

Zusammenfassung

Mithilfe von Active Server Pages (ASP) können Sie Bilder anzeigen, die in BLOB-Feldern (Binary Large Object) in Ihrem Internetbrowser gespeichert sind. Dieser Artikel enthält Informationen zum Anzeigen eines GIF-Bilds, das in der Microsoft SQL Server Beispieldatenbanktabelle pub_info gespeichert ist.

Weitere Informationen

Die meisten Internetbrowser unterstützen die Anzeige von GIF- und JPEG-Bildern. Um ein Bild anzuzeigen, fordert der Browser das Bild von einem Webserver an. Der Server übergibt das Bild an den Browser als HTTP-Transaktion mit einem HTTP-Header, der den MIME-Typ oder IMAGE/GIFIMAGE/JPEGenthält. Sie können dieses Verhalten mit Active Server Pages simulieren.

Im folgenden Beispiel wird ein HTTP-Header für ein Bild erstellt und dann die Binärinformationen aus einem Bildfeld in SQL Server verwendet, um dem Browser ein GIF bereitzustellen.

 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
 %>

Dieses Skript zeigt nur ein Bild auf dem Bildschirm an. Wenn Sie ein Bild aus einem HTML- oder ASP-Dokument anzeigen möchten, müssen Sie in einem Bildtag auf dieses Skript verweisen. Wenn Sie dieses Bild beispielsweise mit einer Untertitel anzeigen möchten, die es beschreibt, können Sie die folgende HTML-Seite verwenden:

 <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>

Hinweis

Das ASP-Skript geht davon aus, dass das Bildfeld (BLOB-Daten) in der SQL Server Tabelle ein unformatiertes GIF-Bild enthält. Internetbrowser gehen davon aus, dass unformatierte GIF- oder JPEG-Daten dem HTTP-Header folgen. Wenn in den BLOB-Daten überflüssige Informationen enthalten sind, werden diese von diesem Skript übergeben, und das Bild wird nicht ordnungsgemäß angezeigt. Dies wird wichtig, wenn Sie feststellen, dass die meisten Methoden zum Platzieren von Bildern in BLOB-Feldern zusätzliche Informationen in Form von Headern mit dem Bild platzieren. Beispiele hierfür sind Microsoft Access und Microsoft Visual FoxPro. Beide Anwendungen speichern OLE-Header zusammen mit den tatsächlichen Binärdaten im BLOB-Feld.

Diese Technik kann auch auf andere Arten von Binärdaten angewendet werden, nicht nur auf Grafiken. Der Browser muss wissen, welche Art von Inhalt präsentiert wird. Geben Sie dazu den richtigen MIME-Typ in der Variablen Response.ContentType an. Wenn Sie beispielsweise ein Word-Dokument anzeigen möchten, legen Sie ContentType = "application/msword" fest.

References

Die neuesten Knowledge Base-Artikel und andere Supportinformationen zu Visual InterDev und Active Server Pages finden Sie unter Unterstützen von Visual InterDev.