我有一个脚本,只允许授权用户将文件上传到某个文件夹。
但是我不知道如何防止人们在没有登录的情况下随意下载。
我需要 php 中的解决方案。
我用谷歌搜索了一下,但还没有直接的结果。
目前在我的文档根目录中有一个名为 admin 的文件夹和一个名为 uploads 的子文件夹。所以只有管理员角色可以上传。编辑和管理员都可以下载。这种情况怎么办?
请指教。
最佳答案
将文件放在公共(public) webroot 目录之外的某个地方,或者将您的服务器配置为不提供这些文件。只要您的服务器乐于使用有效的 URL 为所有内容提供服务,您就无法使用 PHP 来阻止这种情况。
如果您的文件在 /public_html/
文件夹中,请将它们从该文件夹中取出并放置在例如/secret_files/
,因此您的目录结构如下所示:
public_html/
index.html
admin/
admin_index.php
secret_files/
my_secret_file.txt
Web 服务器仅配置为提供 /public_html/
目录中的文件,因此没有人可以访问目录之外(技术术语 above) 它。
要仍然允许某些人下载这些文件,请按照 cletus 的建议进行操作并使用 readfile
通过 PHP 脚本“手动提供”文件。 PHP 仍然可以访问文件系统的这些其他部分,因此您可以将其用作看门人。
关于php - 如何防止使用 php 公开下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339649/