Foros del Web » Programando para Internet » PHP »

Duda existencial = "Content-Type: image/gif"

Estas en el tema de Duda existencial = "Content-Type: image/gif" en el foro de PHP en Foros del Web. Hola a todos, parto presentándome, mi nombre es Sebastian, soy estudiante de ingeniería civil electrónica y estoy realizando un proyecto pero me encontré con un ...
  #1 (permalink)  
Antiguo 05/11/2012, 21:39
 
Fecha de Ingreso: noviembre-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Pregunta Duda existencial = "Content-Type: image/gif"

Hola a todos, parto presentándome, mi nombre es Sebastian, soy estudiante de ingeniería civil electrónica y estoy realizando un proyecto pero me encontré con un problema.

Les voy a contar un poco de que va mi proyecto para que se entienda mejor mi consulta, mi proyecto consiste en un pequeño servidor web usando un microcontrolador, tiene el puerto de ethernet una memoria SD y obviamente el microcontrolador que los gobierna, hasta ahora soy capas de mostrar paginas sencillas en HTML que están almacenadas en la SD pero no he sido capaz de mostrar ni una imagen, ya que hasta donde se en HTML uno hace referencia a la dirección por lo que no las puedo mostrar con mi micro, después de investigar algunas horas me entere que uno puede mandar los datos de las imágenes y con header('Content-Type: image/gif') de alguna forma las muestro.

Resumiendo mi duda es como puedo mostrar imágenes en una pagina web solo mandando los datos de las imágenes.
  #2 (permalink)  
Antiguo 05/11/2012, 22:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda existencial = "Content-Type: image/gif"

Pues simplemente hay que leer el archivo e imprimir su contenido, no entiendo tu problema.

A todo esto, ¿con qué estás visualizando las páginas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/11/2012, 22:15
 
Fecha de Ingreso: noviembre-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Duda existencial = "Content-Type: image/gif"

Tengo el micro conectado a la red de mi casa por lo que veo las paginas con chrome o mozilla desde mi notebook.
Como leo el archivo??, normalmente en HTML pondría algo como esto:
<img src="ubicación" alt="descripción" />
pero como no tengo un sistema operativo de alto nivel ni suficiente potencia de hardware para hacerlo estoy obligado a mandar cada byte de la imagen, aquí entra el header que no se como utilizar.
  #4 (permalink)  
Antiguo 05/11/2012, 22:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda existencial = "Content-Type: image/gif"

El esquema de HTTP implica dos cosas, las cabeceras y el cuerpo del contenido, en ese orden.

Cita:
Foo: bar
Candy-Does: Nothing
The-Header-key: The%20Value

BODY
Ahora, la pregunta sería, ¿el servidor web lo escribiste tu o cómo?

Dependiendo de esas cualidades es que debes proceder.

Suponiendo que estás usando Apache+PHP podría ser así:
Código PHP:
header(/* ... */);
readfile(/* ... */); 
Si tienes mas dudas bien podrías consultar el RFC de HTTP, o el manual de PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/11/2012, 04:40
 
Fecha de Ingreso: noviembre-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Duda existencial = "Content-Type: image/gif"

En mi server no estoy usando ningun sistema operativo conocido, básicamente trabajo con telnet.

Despues de navegar bastante por este foro encontre algo parecido (casi igual) a lo que necesito, lo encontere aqui http://www.forosdelweb.com/f18/problema-con-header-content-type-image-jpeg-106272/
El codigo seria este:
Código:
<? 
$url_img="http://www.forosdelweb.com/images/logos/navidad2002/logo06.gif"; 
$img_link = fopen($url_img,"rb"); // rb modo binario para windows .. r para linux 

Header("Content-Type: image/gif"); // se envia la cabecera... 
while (!feof ($img_link)){ // se lee la imagen hasta fin de fichero (END OF FILE) 
$img_des = fgets ($img_link, 4096); // se cogen de bloques de 4 kbytes 
echo $img_des; // se mandan al navegador en este caso .. 
} 
fclose($img_link); // se cierra el link de fichero .. 
?>
Ahora mi duda es como implementar este código para mostrar las imágenes en el navegador.
  #6 (permalink)  
Antiguo 06/11/2012, 08:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda existencial = "Content-Type: image/gif"

En el navegador no hace falta nada, eso lo hace automáticamente, sólo debes especificar la URL del siguiente modo.
Código HTML:
<img src="script_que_lee_la_imagen.php"> 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 06/11/2012, 10:18
 
Fecha de Ingreso: noviembre-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Duda existencial = "Content-Type: image/gif"

Gracias por tenerme paciencia, acabo de leer esto http://www.forosdelweb.com/f18/pasar-variable-desde-select-box-php-html-1021634/ y el link que publicaste por lo que ya me di cuenta de mi error.

Se te ocurre alguna otra forma de abordar el problema, explicare mi problema de nuevo por si no se entiende bien, es muy probable que sea algo sencillo, lo que yo necesito es que el navegador muestre una imagen que yo transmito byte a byte, tengo entendido que se necesita un script pero no se exactamente que hacer.
  #8 (permalink)  
Antiguo 06/11/2012, 10:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda existencial = "Content-Type: image/gif"

Lee y reflexiona todo este tema, ya se ha dicho cómo, no más no lo has podido entender supongo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 06/11/2012, 18:54
 
Fecha de Ingreso: noviembre-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Duda existencial = "Content-Type: image/gif"

Encontré una forma de hacer lo que necesito, no es nada de elegante ni eficiente pero al menos funciona, básicamente me basé en esto:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">

Dentro del server cuando llamo a una imagen, este la transforma a base64 y la envía como aparece en el ejemplo que puse, funciona bien, el único gran problema es que pierdo un tiempo considerable en la conversión y ademas debo mandar un 33% mas de info.

Si alguien ve otra forma de abordar el problema por favor que la aporte ya que me seria de bastante ayuda, obviamente si hay alguien interesado en mi proyecto no tengo problema en publicarlo apenas este listo.
  #10 (permalink)  
Antiguo 06/11/2012, 20:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Duda existencial = "Content-Type: image/gif"

Me sorprende que teniendo la solución frente a ti no hayas podido verla.

Cita:
Iniciado por pateketrueke Ver Mensaje
El esquema de HTTP implica dos cosas, las cabeceras y el cuerpo del contenido, en ese orden.

Cita:
Foo: bar
Candy-Does: Nothing
The-Header-key: The%20Value

BODY
Ahora, la pregunta sería, ¿el servidor web lo escribiste tu o cómo?

Dependiendo de esas cualidades es que debes proceder.

Suponiendo que estás usando Apache+PHP podría ser así:
Código PHP:
header(/* ... */);
readfile(/* ... */); 
Si tienes mas dudas bien podrías consultar el RFC de HTTP, o el manual de PHP.
Teniendo esto:

Código HTML:
<img src="script.php"> 
Pues... entonces:

script.php
Código PHP:
<?php
header
('Content-Type: image/gif');
readfile('/path/to/file.gif');


Ahora, si necesitas pasar el nombre del archivo como parámetro.

script.php?pic=foo.gif
Código PHP:
<?php

$img 
"/path/to/img/{$_GET['pic']}";

header('Content-Type: image/gif');
readfile($img);
Etc, etc.

Leyendo los manuales y haciendo pruebas se consigue eso, sigo pensando en la razón de por qué los árboles te han impedido ver el bosque, sencillamente no entiendo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 06/11/2012 a las 20:46

Etiquetas: content-type, existencial, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:36.