简单实现PHP控制文件下载;
调用方式:http://127.0.0.1/temp/index.php?id=c479ec02fec10bbd8af1568b197b19aa
<?php
if(isset($_GET['id'])){
#清除文件状态缓存
clearstatcache();
#文件储存目录
$file_path = dirname(__FILE__).'/upload/';
#文件名符号必须为英文半角
$file_list = array(
'c479ec02fec10bbd8af1568b197b19aa' => '123.doc',
'47eb4fe400e2eef3f8a404ad3ce3e33f' => '456.doc',
'5cd8cb481b2571dd443675eb8253592c' => '789.doc',
);
#检查id是否在指定的列表中
if(array_key_exists($_GET['id'],$file_list)){
#文件名
$file_name = iconv('UTF-8','GB2312',$file_list[$_GET['id']]);
#文件路径
$file_path .= $file_name;
#检查目录文件是否存在并输出
if(file_exists($file_path)){
header('Content-Description:FileTransfer');
header('Content-Type:application/octet-stream');
header('Content-Disposition:attachment;filename='.$file_name);
header('Content-Transfer-Encoding:binary');
header('Expires:0');
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Pragma:public');
header('Content-Length:'.filesize($file_path));
ob_clean();
flush();
readfile($file_path);
exit;
}
}
}
?>