我有简单的下载脚本(用于Wordpress文件下载
if($filesize) {
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);
} else {
echo '<p>No file found</p>';
}
我希望通过直接访问来阻止用户访问下载文件,因此如果用户在浏览器中输入路径,则无法访问该文件。
我用.htaccess尝试了这个但没有结果。它直接阻止了文件,但脚本也不会下载文件。
任何帮助?
谢谢!
答案 0 :(得分:2)
如果文件与PHP脚本位于同一个框中,请将它们移出webserver目录,以便脚本可以访问它们,但用户不能访问它们。
答案 1 :(得分:0)
我将假设用户需要单击某个按钮来获取文件,意味着一个帖子方法,如果不是从帖子中显示主题的错误信息,
if($_SERVER['REQUEST_METHOD'] != 'POST'){
echo 'Error: You cannot access this link Directly';
}
我还假设您将文件放在单独的文件夹中,您可以使用以下规则创建新的.htaccess文件:
Order Deny,Allow
Deny from all
答案 2 :(得分:0)
要解决此问题,您可以将脚本文件保留在下载文件和.htaccess文件所在的文件夹之外。
通过这样做,如果用户在浏览器中输入路径,用户无法直接访问下载文件,则不会下载文件。他们只能通过脚本访问文件。
希望它有意义。