Ver Mensaje Individual
  #12 (permalink)  
Antiguo 30/03/2007, 04:27
tammander
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Mostrar una imagen de access en asp

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
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -