分享一个php下载函数,用于下载指定的文件,不限文件格式。有需要的朋友参考下。
php下载文件的函数举例,如下:
- <!--?php
- /**
- * php下载文件
- * $filename=$_SERVER['DOCUMENT_ROOT']."/test/file/20130503/20130503150036_85945.doc";
- * $title="下载测试9";
- * down($filename,$title);
- * edit by bbs.it-home.org
- */
- //$filename 必须是路径,不是url
- function down($filename,$title=''){
- $file = fopen($filename,"r");
- $filesize = filesize($filename);
- $encoded_filename = urlencode($title);
- $encoded_filename = str_replace("+", "%20", $title);
- $ua = $_SERVER["HTTP_USER_AGENT"];
- if (preg_match("/MSIE/is", $ua)) {
- $file_name = urlencode($title);
- header("Pragma: public"); header("Expires: 0");
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- header("Content-Type: application/force-download");
- header('Content-Type: application/vnd.ms-excel; charset=utf-8');
- header("Content-Transfer-Encoding: binary");
- header('Content-Disposition: attachment; filename='.$file_name);
- } else {
- header('Content-Type: application/octet-stream');
- if (preg_match("/Firefox/is", $ua)) {
- header('Content-Disposition: attachment; filename*="utf8\'\'' . $title . '"');
- } else {
- header('Content-Disposition: attachment; filename="' . $title . '"');
- }
- }
- echo fread($file, $filesize);
- fclose($file);
- }
- ?-->
运行效果如下图:
 |