PHP的下载功能怎么实现,网上教程一堆。以下是我亲测可用的。但有两个需要注意的地方
注意
1.windows系统目录结构的斜杠“\”,Linux系统的斜杠为”/”,是相反的。我的代码在windows中写好后,部署到Linux上时,无法执行。最后发现导致问题的原因是这个。(后来经过测试,发现window中正反斜杠都可以)。
2.getcwd();方法。这个方法可以得到当前目录。
// echo getcwd();
$file_url = "./Public/File/haha.apk";
if(!isset($file_url)||trim($file_url)==''){
echo '500';
}
if(!file_exists($file_url)){ //检查文件是否存在
echo '404';
}
$file_name=basename($file_url);
$file_type=explode('.',$file_url);
$file_type=$file_type[count($file_type)-1];
$file_name=trim($new_name=='')?$file_name:urlencode($new_name);
$file_type=fopen($file_url,'r'); //打开文件
//输入文件标签
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize($file_url));
header("Content-Disposition: attachment; filename=".$file_name);
//输出文件内容
echo fread($file_type,filesize($file_url));
fclose($file_type);