前面写过一篇"PHP实现文件上传功能",后来还有从远程服务器通过http下载文件的需求,又写了个提供文件下载的脚本。
PS. 偶尔用用PHP写点这种很小很小的Web程序,还是蛮简单方便的。
PHP实现文件下载功能的代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $base_dir = "/usr/share/nginx/html/"; $myfile = $base_dir . $_GET["file"]; //echo $myfile; if( ! file_exists($myfile) ) { echo "file: " . $myfile . " doesn't exist."; } elseif ( is_dir($myfile) ) { echo "file: " . $myfile . " is a directory."; } else { header("Content-type: application/octet-stream"); header('Content-Disposition: attachment; filename="' . basename($myfile) . '"'); header("Content-Length: ". filesize($myfile)); readfile($myfile); } ?> |
github: https://github.com/smilejay/other-code/blob/master/php/download.php
另外,一个牛人分析一下使用apache/nginx的一些模块让php实现问下下载更加的高效:
http://www.laruence.com/2012/05/02/2613.html
(我是路过写几个PHP程序,就没有深入研究了)。