PHP fornisce la funzione int fpassthru (risorsa $ handle) . Si apre un file e quindi fpassthru invia il file in uscita semplicemente copiandolo sull'output senza archiviarlo, consentendo l'invio di file potenzialmente di grandi dimensioni.
<?php
// open the file in a binary mode
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// dump the picture and stop the script
fpassthru($fp);
exit;
Se puoi, è meglio evitare di usare PHP per fare qualcosa di diverso dal configurare il download iniziale e poi passare il download effettivo al server web per controllare (e quindi rilasciare un processo PHP). Se controlli il server, puoi installare / attivare mod_xsendfile (per Apache) o l'equivalente Nginx, X-accel .