Reputation: 1078
I want to handle big files(1-2Gb) downloads with php script and found two ways to do that:
and use this implementation:
header('Content-type: ' . $string);
header('Content-disposition: attachment; filename=' . $info['filename']);
$file = file_get_contents($filename);
echo $file;
or
readfile($filename);
But it takes too long to output the file. I suppose that the whole file has to be readed, before the output starts. It is more quickly when point the exact location of the file. Then it starts the output almost immediately.
I am looking for solution that streams the file or something. Any ideas?
Upvotes: 4
Views: 2303
Reputation: 765
$handle = fopen($this->_path, 'rb');
while(!feof($handle))
{
echo fread($handle, 4096);
ob_flush();
flush();
}
fclose($handle);
from PHP Readfile() not working for me and I don't know why
Upvotes: 3