使用php从非公共html文件夹下载文件

egd*_*egd 3 php

我有许多文件存储在服务器上,但不存储在public_html目录中.这个想法是登录的用户可以下载文件,使用$ _SESSION变量来检查他们是否已登录,但如果其他人使用他们的计算机,他们无法在浏览器历史记录中看到直接文件路径,即使他们这样做它位于公共html目录之外,因此无法访问.

我知道我需要一个脚本来执行此操作,但我无法找到如何在任何地方执行此操作,如果有人能告诉我如何执行此操作,将非常感激.

Tho*_*son 10

您可以使用readfile输出作为相关文件.例如:

$file = '/absolute/path/to/file.ext';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    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));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
Run Code Online (Sandbox Code Playgroud)