Visualizzare le immagini archiviate in un campo BLOB

Versione originale del prodotto: Internet Information Services
Numero KB originale: 173308

Riepilogo

Usando Active Server Pages (ASP), è possibile visualizzare le immagini archiviate nei campi BLOB (Binary Large Object) nel browser Internet. Questo articolo fornisce informazioni su come visualizzare un'immagine GIF archiviata nella tabella di database di esempio di Microsoft SQL Server pub_info.

Ulteriori informazioni

La maggior parte dei browser Internet supporta la visualizzazione di immagini GIF e JPEG. Per visualizzare un'immagine, il browser richiede l'immagine da un server Web. Il server passa l'immagine al browser come transazione HTTP con un'intestazione HTTP contenente un tipo MIME di IMAGE/GIF o IMAGE/JPEG. È possibile simulare questo comportamento con Active Server Pages.

Nell'esempio seguente viene creata un'intestazione HTTP per un'immagine e quindi vengono usate le informazioni binarie di un campo immagine in SQL Server per fornire una GIF al browser.

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

Questo script visualizza solo un'immagine sullo schermo. Se si desidera visualizzare un'immagine da un documento HTML o ASP, è necessario fare riferimento a questo script in un tag immagine. Ad esempio, se si desidera visualizzare questa immagine con un didascalia descriverla, è possibile usare la pagina HTML seguente:

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

Nota

Lo script ASP presuppone che il campo immagine (dati BLOB) nella tabella SQL Server contenga un'immagine GIF non elaborata. I browser Internet presuppongono che i dati GIF o JPEG non elaborati seguano l'intestazione HTTP. Se nei dati BLOB sono contenute informazioni estranee, questo verrà passato da questo script e l'immagine non verrà visualizzata correttamente. Ciò diventa importante quando ci si rende conto che la maggior parte dei metodi di inserimento delle immagini nei campi BLOB inserisce informazioni aggiuntive sotto forma di intestazioni con l'immagine. Esempi di questo tipo sono Microsoft Access e Microsoft Visual FoxPro. Entrambe queste applicazioni salvano le intestazioni OLE nel campo BLOB insieme ai dati binari effettivi.

Questa tecnica può essere applicata anche ad altri tipi di dati binari, non solo alla grafica. Il browser deve sapere quale tipo di contenuto viene presentato. A tale scopo, specificare il tipo MIME appropriato nella variabile Response.ContentType. Ad esempio, se si desidera visualizzare un documento di word, è necessario impostare ContentType = "application/msword".

Riferimenti

Per gli articoli della Knowledge Base più recenti e altre informazioni sul supporto su Visual InterDev e Active Server Pages, vedere Support Visual InterDev.