Skip to content

Instantly share code, notes, and snippets.

@hanvari
Created August 25, 2014 21:39
Show Gist options
  • Save hanvari/1ede6ffefdf33b6f1531 to your computer and use it in GitHub Desktop.
Save hanvari/1ede6ffefdf33b6f1531 to your computer and use it in GitHub Desktop.
PHP Serve File for Download
<?php
function DownloadFile($file) {
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');
# OR- 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;
}
}
function DownloadFileWithSpeedLimit(){
// set the download rate limit (=> 20,5 kb/s)
$download_rate = 20.5;
if(file_exists($local_file) && is_file($local_file))
{
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($local_file));
header('Content-Disposition: filename='.$download_file);
flush();
$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);
}
fclose($file);}
else {
die('Error: The file '.$local_file.' does not exist!');
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment