PHP 4, 5
Sintassi: int readfile (
string $file [,bool $include_path=false [,
resource $context ]] )
Readfile è una funzione di PHP che serve ad inviare un file come output (download da
browser) sfruttando gli opportuni header.
La funzione restituisce il numero di byte relativi al file puntato (
$file). In caso di errore nella lettura del file restituirà invece
FALSE.
Vari esempi di utilizzo sono presenti sul sito di php.net,
quì.
Ne riporto uno, il più semplice, che utilizza dei normalissimi header di output transfer, presente nella pagina sopra lincata:
Codice PHP:
<?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('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($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
E' importante avere gli adeguati permessi di lettura sul file puntato dalla funzione.
Opzionalmente è possibile ricercare il file all'interno della
include_path stabilita impostandola su
TRUE.
Con la risorsa
$context è possibile richiamare una funzione di flusso (
Stream Functions).