带有PDF的PHP会话/文档文件夹


PHP session / document folder with PDF

我创建了一个Web应用程序/站点,人们需要在其中登录并能够访问一些文件才能查看(PDF(。

我的问题是,当我将这些文件存储在服务器上时,在文档文件夹中,人们可以直接访问这些文件而无需登录(如果他们知道随机网址,例如 www.example.com/documentation/example1.pdf(。

正在使用会话来控制他们是否登录,但是如果他们没有登录或有打开的会话,我如何防止直接访问只是热链接直接链接的人?

如果我通过 filezilla 设置权限,它会限制所有访问,无论它们是否已登录。

任何人都可以就我可以为此采取的解决方案提供建议吗?

谢谢

禁止公共访问文件夹。只需在文件夹中创建一个.htaccess文件并将其放入其中:

Order Allow,Deny
Deny From All

接下来,创建一个脚本来检查用户是否已登录并提供文件。

它看起来像这样:

...
if (userLoggedIn()) {
   header('Content-disposition: attachment; filename= ' . $_GET['file']);
   header('Content-type: application/pdf');
   readfile($path . $_GET['file']);
}
...

在这种情况下,您的用户需要发出类似 www.example.com/download.php?file=example1.pdf 的请求,而不是 www.example.com/documentation/example1.pdf