La página ASP que va a contener la imagen NO PUEDE TENER NADA: Ni <HTML>, ni <HEAD>, ni <BODY> ni siquiera charset: NADA.
Voy a intentar explicarte qué es una imagen para el ordenador: Esto:
Código:
ÿØÿà JFIF d d ÿì Ducky < ÿî Adobe dÀ ÿÛ „
ÿÀ „ ÿÄ Q ¢c% ÿÚ ? èð €
Esto es una imagen JPG visto por el Block de Notas
¿Como el navegador intrerpreta esto? Por el content-type. Cualquier programa de retoque fotográfico lo primero que hace es crear un archivo y asignarle un tipo de contenido (image/JEPG) y luego rellena el resto con esos caracteres extraños solo entendibles por el ordenador y algun friki
Nosotros debemos hacer lo mismo:
- Content-type
- Codigo Binario
NADA MAS.
¿Como hago para ver la imagen en otra página que SI contiene texto (descripciones, precios, etc etc etc)? Haciendo creer al navegador que eso que pongo en el src de IMG es una imagen aunque no tenga la extension de imagen (jpg, gif, etc) es una ASP. ¿Porqué el navegador se lo traga? Porque el navegador es un papel en blanco: Si tu le dices que eso es una imagen, el te cree. Enviale lo que tiene que leer correctamente. Al navegador web le importa poco como lo llames.
Asi:
<img src="foto.asp?id=1" width="150" height="150" />
el navegador leerá foto.asp?id=1 y lo cargará como imagen en un recuadro de 150 x 150. Si la información que tu le envias es, ciertamente una imagen, este la dibujará. Si no es pondrá imagen perdida (el simbolito ese cuando no encuentra la imagen)
y foto.asp solo tiene lo que te he puesto. NADA MAS:
foto.asp
Código:
<%@ LANGUAGE="VBSCRIPT" %>
<!--#include file="../Connections/fotos.asp" -->
<%
response.Expires = 0
response.Buffer = True
response.Clear
dim id
id = request("id")
if id <> "" then
Set rs = Server.CreateObject("adodb.recordset")
strSQL = "select FileData,ContentTyped from fotos where id = " & id
rs.Open strSQL, MM_fotos_STRING
response.contentType = rs("ContentTyped")
response.BinaryWrite rs("FileData")
rs.Close
end if
response.End
%>
Como ves no tiene ni <html> ni <body> ni nada de eso porque NO ES UNA PAGINA HTML, es una IMAGEN (en modo texto, pero es una imagen)
Siento no poder explicarme mejor
Tienes que comprender que estas usando un papel como si fuera una fotografia.
Espero haberme explicado mejor esta vez.
Un saludo