最近有这样一个需求,服务器上的文件,用户需要下载到本地
话不多说直接上代码~~
public function downloadTemplate(){
header("Content-type:text/html;charset=utf-8");
$file_name = "filename.xls"; //换成你的文件名
$file_name = iconv("utf-8","gb2312",$file_name);
$file_sub_path = APP_PATH.'portal/data/templatefile/'; //确保文件在这个路径下面,换成你文件所在的路径
$file_path=$file_sub_path.$file_name;
if(!file_exists($file_path)){
echo "下载文件不存在!";exit; //如果提示这个错误,很可能你的路径不对,可以打印$file_sub_path查看
}
$fp=fopen($file_path,"r");
$file_size=filesize($file_path);
//下载文件需要用到的头
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$file_name);
$buffer=1024;
$file_count=0;
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp); //关闭这个打开的文件
}
/**
* 分享者:PHP-情歌
*/