假设我想在我的服务器上的某个目录下托管一些pdf
个文件(例如domain/myfiles
)。出于这个原因,我创建了一个独特的 - 难以猜测的链接,使用一些常见的PHP函数,然后将文件放在这个特定目录(domain/myfiles/hardToGuessHash.pdf
)中。
但是,如果有人通过domain/myfiles/hardToGuessHash.pdf
访问我的服务器,他将能够查看并下载此文件。
有没有办法提前要求session access
,以阻止对我的文件进行未经授权的访问?我在StackOverflow上搜索但我真的没想出来。
澄清:我不想隐藏下载链接。我想要下载验证。例如,如果在文件副本上具有下载权限的人A粘贴在人B上的下载链接,那么人B就不能从该链接下载该文件!
谢谢!
答案 0 :(得分:3)
所以将文件存储在文档根目录之外 - 然后没有人可以直接访问。
通过检查会话的php页面切断所有文件:
<?php
session_start();
if (isset($_SESSION['logged_in'])) { //or what ever session check you like
$file = '/this/is/the/path/file.mp3';
header('Content-type: audio/mpeg');
header('Content-length: ' . filesize($file));
readfile($file);
}else{
echo 'you cant have the file';
}
?>
我承认偷了大部分Allow logged in user to Download File in PHP else nobody can't