1 Star 2 Fork 0

鼠子/MioDrive

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
download.php 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
鼠子 提交于 2024-08-29 07:54 . 1.0.0
<?php
/**
* PHP简单文件下载系统:MioDrive
*
* @package MioDrive
* @author 鼠子(ShuShuicu)
* @link https://blog.miomoe.cn/
*/
require './config.inc.php';
session_start();
$token = $_SESSION['token'] ?? null;
if (!isset($_GET['file']) || !isset($_GET['token'])) {
die("参数无效。");
}
$file = basename($_GET['file']); // 仅获取文件名,避免路径注入
$relativePath = dirname($_GET['file']); // 获取相对路径(如果存在)
$baseDir = $configPath;
$path = __DIR__ . '/' . $baseDir . '/' . $relativePath . '/' . $file;
if (!is_file($path)) {
die("文件不存在。");
}
// 验证 token 是否正确
if ($_GET['token'] !== $token) {
die("无效的 token。");
}
// 处理文件下载
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($path) . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
readfile($path);
exit;
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ShuShuicu/MioDrive.git
git@gitee.com:ShuShuicu/MioDrive.git
ShuShuicu
MioDrive
MioDrive
master

搜索帮助