Files
EasyImages2.0/application/down.php
icret cbaf3a30ae v2.6.8
- 上传组件支持到 PHP 8.2
- 修复下载任意文件漏洞 [#75](https://github.com/icret/EasyImages2.0/issues/75)
- 增加自定义底部信息
- 增加自定义管理提示
- 增加图床模式
  - 危险:除图片外不验证文件是否正常,也代表可以上传任意指定格式!
- 增加上传时生成缩略图(仅设置直链缩略图时生效),低配vps负载较大,影响前端上传速度!
- 其他一些优化
2022-12-30 02:58:26 +08:00

43 lines
990 B
PHP
Executable File

<?php
/**
* 下载文件
* https://www.php.cn/php-weizijiaocheng-394566.html
*/
//获取要下载的文件名
require_once __DIR__.'/function.php';
// 获取下载路径
if (empty($_GET['dw'])) {
exit('No File Path');
}else{
$dw = '../' . $_GET['dw'];
// 检查文件是否存在
if(!is_file($dw)){
exit('No File');
}
}
// 过滤下载非指定上传文件格式
$dw_extension = pathinfo($dw,PATHINFO_EXTENSION);
$filter_extensions = explode(',',$config['extensions']);
// 过滤下载其他格式
$filter_other = array('php','json','log');
// 先过滤后下载
if(in_array($dw_extension,$filter_extensions) && !in_array($dw_extension,$filter_other)){
//设置头信息
header('Content-Disposition:attachment;filename=' . basename($dw));
header('Content-Length:' . filesize($dw));
//读取文件并写入到输出缓冲
readfile($dw);
exit;
}else{
exit('Downfile Type Error');
}