Created
November 4, 2012 20:13
-
-
Save apphp-snippets/4013475 to your computer and use it in GitHub Desktop.
This snippet allows you set a limitation for download rate of the file that visitors download from your site.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /* Source: http://www.apphp.com/index.php?snippet=php-download-file-with-speed-limit */ | |
| /* set here a limit of downloading rate (e.g. 10.20 Kb/s) */ | |
| $download_rate = 10.20; | |
| $download_file = 'download-file.zip'; | |
| $target_file = 'target-file.zip'; | |
| if(file_exists($download_file)){ | |
| /* headers */ | |
| header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); | |
| header('Cache-control: private'); | |
| header('Content-Type: application/octet-stream'); | |
| header('Content-Length: '.filesize($download_file)); | |
| header('Content-Disposition: filename='.$target_file); | |
| /* flush content */ | |
| flush(); | |
| /* open file */ | |
| $fh = @fopen($download_file, 'r'); | |
| while(!feof($fh)){ | |
| /* send only current part of the file to browser */ | |
| print fread($fh, round($download_rate * 1024)); | |
| /* flush the content to the browser */ | |
| flush(); | |
| /* sleep for 1 sec */ | |
| sleep(1); | |
| } | |
| /* close file */ | |
| @fclose($fh); | |
| }else{ | |
| die('Fatal error: the '.$download_file.' file does not exist!'); | |
| } | |
| ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment