I have this code here, however i want to limit the speed the user can download at, how would i implement this into this code;
header("Content-type: application/force-download");
header("Content-Transfer-Encoding: Binary");
header("Content-length: ".filesize("uploads/$filename"));
header("Content-disposition: attachment; filename=\"$origname");
readfile("uploads/$filename");
Thanks!
This is what i tried;
$download_rate = 100;
$origname = get_file_name($file[0]);
header("Content-type: application/force-download");
header("Content-Transfer-Encoding: Binary");
header("Content-length: ".filesize("uploads/$filename"));
header("Content-disposition: attachment; filename=\'$origname'");
$local_file = "uploads/$origname";
// flush content flush();
// open file stream
$file = fopen($local_file, "r");
while (!feof($file)) {
// send the current file part to the browser
print fread($file, round($download_rate * 1024));
// flush the content to the browser
flush();
// sleep one second
sleep(1);
}
// close file stream
fclose($file);
Why doesn't this work?
Hope this helps http://www.jonasjohn.de/snippets/php/dl-speed-limit.htm
ReplyDeleteIf you've tried what @mugur suggested then there might be an issue somewhere else. For example in your snippet it seems you've got a missing escaped quotation mark:
ReplyDeleteheader("Content-disposition: attachment; filename=\"$origname");
I guess it should be:
header("Content-disposition: attachment; filename=\"$origname\"");
In your while fread, just calculate bytes and timestamps. Then add a tiny pause using usleep.
ReplyDelete