2011-05-04 13 views
5

Estoy tratando de utilizar una función con el fin de conseguir este trabajo:imagen quebrada con readfile y file_get_contents

<img src='login.php?image=ind_legend.jpg'> 

Pero no puedo pasar a través de la función para colocar la imagen. Fui a un par de pasos y trató solamente esta parte del código:

<?php 
$file = "http://localhost/sales/test.jpg"; 
header('Content-type: image/jpeg'); 
readfile($file); 
?> 

o el uso de esta función:

echo file_get_contents($source); 

pero el hecho es que lo único que consigo es una cruz imagen rota (IE) o nada en Firefox.

apreciaría cualquier sugerencia

Gracias de antemano

Respuesta

4

Por supuesto que tiene un poco de espacio en blanco en su script PHP, o una UTF-8 BOM invisible antes de que su marcador <?php apertura. Usa un editor hexadecimal para averiguarlo.

Para depurarlo aún más, abra la URL de la imagen http://localhost/login.php?image=ind_legend.jpg directamente en su navegador, guarde el archivo. Y luego compárelo con el JPEG original.

0

En primer lugar, dirija su navegador a http://youraddress/login.php?image=ind_legend.jpg y compruebe el resultado.

Tal vez el /sales/test.jpg archivo está dañado o no se tiene han permitido al http: // envoltura para readline

Por fin guardar la imagen dañada a través de la imagen, guardar como ... del menú contextual opción de su navegador de elección e intente abrirlo con un editor de texto. No me sorprenderá si encuentra un mensaje de error (si los tiene habilitados).

2

Como se mencionó anteriormente, es probable que tenga algunos espacios en blanco. Intentaría reemplazar todo el archivo con el siguiente código. Extracción de la declaración de cierre php elimina cualquier posibilidad de que hay espacios en blanco extra:

<?php 
$file = "http://localhost/sales/test.jpg"; 
header('Content-type: image/jpeg'); 
readfile($file); 
8

utilice el ob_clean() función de PHP antes de la readfile()

+0

Niza, esto funcionó para mí. Gracias. –

+0

Esta es una forma de solucionar el problema, la resolución real del problema está aceptada. –