Generar una imagen en PHP
Tengo una imagen $file
(por ejemplo ../image.jpg
)
que tiene un tipo mimo$type
¿Cómo puedo enviarlo al navegador?
Aceptado
$file = '../image.jpg';
$type = 'image/jpeg';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
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.