Mostrar imágenes almacenadas en un campo BLOB

Versión del producto original: Internet Information Services
Número de KB original: 173308

Resumen

Con Active Server Pages (ASP), puede ver imágenes almacenadas en campos BLOB (objetos binarios grandes) en el explorador de Internet. En este artículo se proporciona información sobre cómo mostrar una imagen GIF almacenada en la tabla de base de datos de ejemplo de Microsoft SQL Server pub_info.

Más información

La mayoría de los exploradores de Internet admiten la visualización de imágenes GIF y JPEG. Para mostrar una imagen, el explorador solicita la imagen desde un servidor web. El servidor pasa la imagen al explorador como una transacción HTTP con un encabezado HTTP que contiene un tipo MIME de IMAGE/GIF o IMAGE/JPEG. Puede simular este comportamiento con Active Server Pages.

En el ejemplo siguiente se crea un encabezado HTTP para una imagen y, a continuación, se usa la información binaria de un campo de imagen de SQL Server para proporcionar un GIF al explorador.

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

Este script solo muestra una imagen en la pantalla. Si desea mostrar una imagen de un documento HTML o ASP, debe hacer referencia a este script en una etiqueta de imagen. Por ejemplo, si desea mostrar esta imagen con un subtítulo describiéndolo, puede usar la siguiente página 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>

Nota:

El script ASP supone que el campo de imagen (datos BLOB) de la tabla SQL Server contiene una imagen GIF sin formato. Los exploradores de Internet suponen que los datos GIF o JPEG sin procesar siguen el encabezado HTTP. Si hay información innecesaria en los datos BLOB, este script lo pasará y la imagen no se mostrará correctamente. Esto es importante cuando se da cuenta de que la mayoría de los métodos para colocar imágenes en campos BLOB colocan información adicional en forma de encabezados con la imagen. Ejemplos de esto son Microsoft Access y Microsoft Visual FoxPro. Ambas aplicaciones guardan encabezados OLE en el campo BLOB junto con los datos binarios reales.

Esta técnica también se puede aplicar a otros tipos de datos binarios, no solo a gráficos. El explorador debe saber qué tipo de contenido se presenta. Para ello, especifique el tipo mime adecuado en la variable Response.ContentType. Por ejemplo, si quisiera ver un documento de Word, establecería ContentType = "application/msword".

Referencias

Para obtener los artículos más recientes de Knowledge Base y otra información de soporte técnico sobre Visual InterDev y Active Server Pages, consulte Compatibilidad con Visual InterDev.