readfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readfileMuestra un fichero

Descripción

readfile(string $filename, bool $use_include_path = false, ?resource $context = null): int|false

Lee un fichero y lo envía al buffer de salida.

Parámetros

filename

El fichero a leer.

use_include_path

Puede utilizarse el segundo argumento opcional para explorar el directorio include_path, pasando el valor de true.

context

Un resource de contextos de flujos.

Valores devueltos

Devuelve el número de bytes leídos desde el fichero en caso de éxito, o false en caso de error

Errores/Excepciones

En caso de fallo, se emite un E_WARNING.

Ejemplos

Ejemplo #1 Forzar la descarga utilizando readfile()

<?php
$file
= 'monkey.gif';

if (
file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>

El resultado del ejemplo sería algo similar a:

Ventana de apertura / guardado

Notas

Nota:

readfile() no presentará problemas de memoria, incluso al enviar ficheros grandes. Si se encuentran este tipo de problemas, asegúrese de que el buffer de salida está desactivado con la función ob_get_level().

Sugerencia

Se puede emplear un URL como nombre de fichero con esta función si las envolturas de fopen han sido activadas. Véase fopen() para más información de cómo especificar el nombre de fichero. Véanse las Protocolos y Envolturas soportados; continen enlaces con información sobre las diferentes capacidades que tienen las envolturas, notas sobre su empleo, e información de cualquier variable predefinida que podría proporcionarse.

Ver también