说明:实例中加密使用MD5加密方式

下载页面代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<a href="./download.php?fn=75639d4112bb5a157b65bb18136ccd4e">下载图片</a>|
<a href="./download.php?fn=3ec8b211b704b0b2b4f5cae07e8020fa">下载视频</a>
</body>
</html>
download.php文件代码如下:
$arr=['75639d4112bb5a157b65bb18136ccd4e'
=>['abc.jpg','图片.jpg'],
'3ec8b211b704b0b2b4f5cae07e8020fa'
=>['video.avi','视频.avi']];
//获取地址栏参数
$fn=$_GET['fn'];
//取出真实文件下载路径
foreach($arr as $key=>$value){
if($fn==$key){
$filename="./resource/".$value[0];
break;
}
}
//打开文件
$handle=fopen($filename,'rb');
//设置文件被下载时显示的文件名
//如果下载时文件名显示乱码可以尝试设置转换编码:
//比如:$downname=iconv('utf-8','gbk',$arr[$fn][1]);
$downname=$arr[$fn][1];
//声明文件内容类型为八位字节流
header('content-type:application/octet-stream');
//声明文件在客户端以附件形式存储
header("content-disposition:attachment;filename=$downname");
//循环向客户端输出二进制数据
while($line=fread($handle,1024)){
echo $line;
}
//关闭文件释放资源
fclose($handle);

网友评论