(PHP 4, PHP 5)
readfile — Transmite un archivo
Lee un archivo y lo escribe en el buffer de salida.
El nombre de archivo que va a ser leído.
Se puede usar el segundo parámetro opcional y establecerlo a TRUE si se quiere buscar el archivo en include_path también.
Un resource de flujo de contexto.
Devuelve el número de bytes leídos desde el archivo. Si se produjo un error, se devuelve FALSE y, a menos que la función fuese llamada como @readfile(), se imprime un mensaje de error.
Example #1 Forzar un descarga usando readfile()
<?php
$archivo = 'mono.gif';
if (file_exists($archivo)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($archivo));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($archivo));
ob_clean();
flush();
readfile($archivo);
exit;
}
?>
El resultado del ejemplo sería algo similar a:
Se puede usar una dirección URL como nombre de archivo con esta función si los fopen wrappers han sido activados. Consulte Lista de Protocolos/Envolturas Soportados para ver enlaces con información sobre las diferentes habilidades que los wrappers tienen, notas de uso e información de cualquier variables predefinidas que pueden usarse.
Note: Soporte para context fue añadido en PHP 5.0.0. Para una descripción de contexts, refiérase a Funciones de Flujos.