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

带有PDF的PHP会话/文档文件夹,php,Php,我已经创建了一个web应用程序/网站,人们需要在其中登录,并能够访问一些文件以查看(PDF) 我的问题是,当我将这些文件存储在服务器上时,人们可以在文档文件夹中直接访问这些文件,而无需登录(如果他们知道随机url,例如www.example.com/documentation/example1.pdf) 我使用会话来控制他们是否登录,但是如果他们没有登录或有一个打开的会话,我如何防止直接访问直接链接的人 如果我通过filezilla设置权限,则无论是否登录,它都会限制所有访问 有人能为我提供解决

我已经创建了一个web应用程序/网站,人们需要在其中登录,并能够访问一些文件以查看(PDF)

我的问题是,当我将这些文件存储在服务器上时,人们可以在文档文件夹中直接访问这些文件,而无需登录(如果他们知道随机url,例如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

,您也可以将文件放在非公共文件夹中。您能对此进行一点扩展吗?如何设置文件夹的权限,使其仅允许服务器查看文件。脚本将位于何处,userLoggedIn是否与会话相关?@user2661760抱歉,我不知道是否可以使用权限执行此操作。但它可以通过.htaccess文件完成。再次检查我的答案,我已经更新了。