有时我们需要隐藏真实的文件下载地址,防止恶意下载,我们可以采用下面的方法(参考网络,侵权请告知)
以下为引用的内容:
$file_name = "example.exe";立即学习“PHP免费学习笔记(深入)
”;
$file_dir = "/public/www/download/";if (!file_exists($file_dir . $file_name)) { //检查文件是否存在echo "文件未找到";exit;} else {$file = fopen($file_dir . $file_name,"r"); // 打开文件// 输入文件标签Header("Content-type: application/octet-stream");Header("Accept-Ranges: bytes");Header("Accept-Length: ".filesize($file_dir . $file_name));Header("Content-Disposition: attachment; filename=" . $file_name);// 输出文件内容echo fread($file,filesize($file_dir . $file_name));fclose($file);exit;}而如果文件为远程文件,则原始码会有少许改动,程式如下:
以下为引用的内容:
$file_name = "example.exe";立即学习“PHP免费学习笔记(深入)
”;
$file_dir = "http://back.zhizhi123.com/";$file = @ fopen($file_dir . $file_name,"r");if (!$file) {echo "文件未找到";} else {Header("Content-type: application/octet-stream");Header("Content-Disposition: attachment; filename=" . $file_name);while (!feof ($file)) {echo fread($file,50000);}fclose ($file);}这样就能用PHP直接输出文件了。
