Partager via


Afficher les images stockées dans un champ BLOB

Version du produit d’origine : Internet Information Services
Numéro de la base de connaissances d’origine : 173308

Résumé

À l’aide d’ASP (Active Server Pages), vous pouvez afficher des images stockées dans des champs BLOB (objet volumineux binaire) dans votre navigateur Internet. Cet article fournit des informations sur l’affichage d’une image GIF stockée dans l’exemple de table de base de données Microsoft SQL Server pub_info.

Plus d’informations

La plupart des navigateurs Internet prennent en charge l’affichage d’images GIF et JPEG. Pour afficher une image, le navigateur demande l’image à partir d’un serveur web. Le serveur transmet l’image au navigateur en tant que transaction HTTP avec un en-tête HTTP contenant un type MIME ou IMAGE/GIFIMAGE/JPEG. Vous pouvez simuler ce comportement avec les pages Active Server.

L’exemple suivant construit un en-tête HTTP pour une image, puis utilise les informations binaires à partir d’un champ d’image dans SQL Server pour fournir une image GIF au navigateur.

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

Ce script affiche uniquement une image à l’écran. Si vous souhaitez afficher une image à partir d’un document HTML ou ASP, vous devez faire référence à ce script dans une balise d’image. Par exemple, si vous souhaitez afficher cette image avec une légende qui la décrit, vous pouvez utiliser la page HTML suivante :

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

Remarque

Le script ASP part du principe que le champ image (données BLOB) de la table SQL Server contient une image GIF brute. Les navigateurs Internet supposent que les données GIF ou JPEG brutes suivent l’en-tête HTTP. Si des informations superflues sont contenues dans les données BLOB, celles-ci sont transmises par ce script et l’image ne s’affiche pas correctement. Cela devient important lorsque vous réalisez que la plupart des méthodes de placement d’images dans des champs BLOB placent des informations supplémentaires sous la forme d’en-têtes avec l’image. Par exemple, Microsoft Access et Microsoft Visual FoxPro. Ces deux applications enregistrent des en-têtes OLE dans le champ BLOB, ainsi que les données binaires réelles.

Cette technique peut également être appliquée à d’autres types de données binaires, pas seulement aux graphiques. Le navigateur doit savoir quel type de contenu est présenté. Pour ce faire, spécifiez le type mime approprié dans la variable Response.ContentType. Par exemple, si vous souhaitez afficher un document word, vous devez définir contentType = « application/msword ».

Références

Pour obtenir les derniers articles de la Base de connaissances et d’autres informations de support sur Visual InterDev et les pages Active Server, consultez Prise en charge de Visual InterDev.