php下载文件的函数举例,如下:
<?php /** * php下载文件 * $filename=$_SERVER['DOCUMENT_ROOT']."/test/file/20130503/20130503150036_85945.doc"; * $title="下载测试9"; * down($filename,$title); * edit by www.jb200.com */ //$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); } ?>
运行效果如下图: