Generar una imagen en PHP

Resuelto steven asked hace 55 años • 12 respuestas

Tengo una imagen $file(por ejemplo ../image.jpg)

que tiene un tipo mimo$type

¿Cómo puedo enviarlo al navegador?

steven avatar Jan 01 '70 08:01 steven
Aceptado
$file = '../image.jpg';
$type = 'image/jpeg';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
Emre Yazici avatar Dec 05 '2009 10:12 Emre Yazici

Si tiene la libertad de configurar su servidor web usted mismo, herramientas como mod_xsendfile (para Apache) son considerablemente mejores que leer e imprimir el archivo en PHP. Su código PHP se vería así:

header("Content-type: $type");
header("X-Sendfile: $file"); # make sure $file is the full path, not relative
exit();

mod_xsendfile recoge el encabezado X-Sendfile y envía el archivo al navegador. Esto puede marcar una diferencia real en el rendimiento, especialmente para archivos grandes. La mayoría de las soluciones propuestas leen el archivo completo en la memoria y luego lo imprimen. Eso está bien para un archivo de imagen de 20 kbytes, pero si tiene un archivo TIFF de 200 MBytes, seguramente tendrá problemas.

Benjamin Wohlwend avatar Dec 05 '2009 10:12 Benjamin Wohlwend