Foros del Web » Programando para Internet » PHP »

Problema al bajar imagen

Estas en el tema de Problema al bajar imagen en el foro de PHP en Foros del Web. Tengo un código que lo que hace es que cuando el das a la url recoge unos datos y descarga la imagen en cuestión: @import ...
  #1 (permalink)  
Antiguo 18/01/2014, 07:26
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Problema al bajar imagen

Tengo un código que lo que hace es que cuando el das a la url recoge unos datos y descarga la imagen en cuestión:

Código PHP:
Ver original
  1. <?php
  2. $file = "http://www.habbo.".$_GET['hotel']."/habbo-imaging/avatarimage?user=".$_GET['user']."&direction=".$_GET['direction']."&head_direction=".$_GET['head']."&gesture=".$_GET['gesture']."&action=".$_GET['action']."&size=".$_GET['size'];
  3. header("Content-disposition: attachment; filename=avatar_".$_GET['user'].".gif");
  4. header("Content-type: application/octet-stream");
  5. readfile($file);
  6. ?>

Un ejemplo de imagen sería esta: http://www.habbo.es/habbo-imaging/av...,drink=&size=n

Pero al bajarlo me dice que "El archivo es demasiado grande o está dañado" y la imagen no puede ser grande ya que mide 64x110, por lo que solo queda la conclusión de que esté dañado.

¿Qué es lo que ocurre?
  #2 (permalink)  
Antiguo 18/01/2014, 07:45
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Problema al bajar imagen

Si se trata de una imagen tipo gif pon la cabecera correspondiente:

Código PHP:
Ver original
  1. header("Content-type: image/gif");
  #3 (permalink)  
Antiguo 18/01/2014, 08:24
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Problema al bajar imagen

Lo tengo así, pero sigue sin funcionar:

Código PHP:
Ver original
  1. <?php
  2. $file = "http://www.habbo.".$_GET['hotel']."/habbo-imaging/avatarimage?user=".$_GET['user']."&direction=".$_GET['direction']."&head_direction=".$_GET['head']."&gesture=".$_GET['gesture']."&action=".$_GET['action']."&size=".$_GET['size'];
  3. header("Content-disposition: attachment; filename=avatar_".$_GET['user'].".png");
  4. header("Content-type: image/png");
  5. readfile($file);
  6. ?>
  #4 (permalink)  
Antiguo 18/01/2014, 08:34
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Problema al bajar imagen

¿Has probado con file_get_contents?
  #5 (permalink)  
Antiguo 18/01/2014, 08:42
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Problema al bajar imagen

Cita:
Iniciado por PHPeros Ver Mensaje
¿Has probado con file_get_contents?
¿Y qué podría hacer con file_get_contents?
  #6 (permalink)  
Antiguo 18/01/2014, 08:48
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Problema al bajar imagen

Código PHP:
Ver original
  1. <?php
  2. $file = "http://www.habbo.".$_GET['hotel']."/habbo-imaging/avatarimage?user=".$_GET['user']."&direction=".$_GET['direction']."&head_direction=".$_GET['head']."&gesture=".$_GET['gesture']."&action=".$_GET['action']."&size=".$_GET['size'];
  3. header("Content-disposition: attachment; filename=avatar_".$_GET['user'].".png");
  4. header("Content-type: image/png");
  5. echo file_get_contents($file);
  6. ?>
  #7 (permalink)  
Antiguo 18/01/2014, 09:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al bajar imagen

Revisa con un editor de texto que es lo qué estás descargando, incluso un salto de linea puede corromper la información de la imagen.

Por cierto, readfile/file_get_contents son equivalentes, así que intercambiar de función no arreglará nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 18/01/2014, 09:45
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Problema al bajar imagen

No le veo ningún espacio...

Por cierto, tengo una parte del código que tampoco me funciona y es esta:

Código PHP:
Ver original
  1. $data = file_get_contents("http://www.habbo.es/home/anen100/");
  2.  
  3. if ( preg_match('/<div class="profile-motto">(.*?)<\/div>/is' , $data , $cap ) )
  4. {
  5.     echo $cap[1];
  6. }

¿Por qué?
  #9 (permalink)  
Antiguo 18/01/2014, 10:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al bajar imagen

Si file_get_contents/readfile no pueden leer URLs es posible que no tengas habilitada la opción allow_url_fopen en tu php.ini, revisa eso.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 18/01/2014, 11:53
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Problema al bajar imagen

Cita:
Iniciado por pateketrueke Ver Mensaje
Si file_get_contents/readfile no pueden leer URLs es posible que no tengas habilitada la opción allow_url_fopen en tu php.ini, revisa eso.
Acabo de mirarlo y está habilitada.
  #11 (permalink)  
Antiguo 18/01/2014, 11:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al bajar imagen

Pues entonces te toca depurar bien tu código porque a simple vista es correcto.

Intenta comentar los header() cuando descargues la imagen y observa los resultados, no hay más que podamos hacer desde acá.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 18/01/2014, 12:14
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Problema al bajar imagen

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues entonces te toca depurar bien tu código porque a simple vista es correcto.

Intenta comentar los header() cuando descargues la imagen y observa los resultados, no hay más que podamos hacer desde acá.
¿Y en cuanto a esto? Es mi última duda:

Código PHP:
Ver original
  1. $data = file_get_contents("http://www.habbo.es/home/anen100/");
  2.  
  3. if ( preg_match('/<div class="profile-motto">(.*?)<\/div>/is' , $data , $cap ) )
  4. {
  5.     echo $cap[1];
  6. }
  #13 (permalink)  
Antiguo 18/01/2014, 12:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al bajar imagen

Es fácil, aprende a depurar tu código:

Código PHP:
Ver original
  1. $data = file_get_contents("http://www.habbo.es/home/anen100/");
  2. echo htmlspecialchars($data);

Antes de asumir que existe el HTML que buscas, ¿por qué no lo verificas?

Yo hice la prueba y el error es bastante obvio:
Cita:
This site requires JavaScript and Cookies to be enabled. Please change your browser settings or upgrade your browser.
Simple: el sitio necesito Javascript para funcionar, por eso tu script no sirve, pues espera HTML que jamás podrá ver.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 18/01/2014, 12:43
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Problema al bajar imagen

Cita:
Iniciado por pateketrueke Ver Mensaje
Es fácil, aprende a depurar tu código:

Código PHP:
Ver original
  1. $data = file_get_contents("http://www.habbo.es/home/anen100/");
  2. echo htmlspecialchars($data);

Antes de asumir que existe el HTML que buscas, ¿por qué no lo verificas?

Yo hice la prueba y el error es bastante obvio:


Simple: el sitio necesito Javascript para funcionar, por eso tu script no sirve, pues espera HTML que jamás podrá ver.
¿Y qué puedo hacer?
  #15 (permalink)  
Antiguo 18/01/2014, 12:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al bajar imagen

Pues con PHP no mucho, porque PHP no ejecuta Javascript, tendrás que investigar por tu cuenta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: bajar
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 08:52.