Ciao,
ho un problema. Ho una procedura che si deve occupare di scaricare file di grosse dimensioni. I file su disco sono salvati senza alcuna estensione, utilizzando il loro id.
La procedura fa una cosa del genere:
Codice PHP:
header("Content-Type: ".$file->file_type);
header("Content-Disposition: attachment; filename=".$file_name);
header("Content-Length: ".filesize($_GET['fileID']));
header("Content-Transfer-Encoding: binary");
// Invia il file al browser
function readfile_chunked ($filename) {
$chunksize = 1024; // how many bytes per chunk
$buffer = '';
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
print $buffer;
}
return fclose($handle);
}
readfile_chunked($_GET['fileID']);
A volte funziona e a volte sembra bloccarsi il download ad un certo punto. Ho anche notato che facendo il download diretto al file le velocità di download sono decisamente maggiori che non mandandolo via php.
Sapete suggerirmi quale sia il metodo migliore e a cosa possano essere dovuti i problemi?
Il tutto gira su di un mio server con IIS6 e PHP 5.