0

看看以下是否可行。

我有一个 PHP 站点,它允许用户使用存储在 MYSQL 数据库中的登录信息对该站点进行基本登录。

通过网站的管理区域,我可以上传所有上传到特定文件夹的 PDF。例如,我会说位置是“/pdf/uploads/”。

是否可以限制哪些用户可以看到某个文件?

例如,假设我有一个用户名为“jsmith”的用户。他们登录并看到一个列出“test.pdf”的文件,该文件存储在 /pdf/uploads/ 目录中。他们可以通过单击链接打开文件。

然后第二个用户“jdoe”登录,他看到为他列出的文件,但没有看到 jsmith 列出的“test.pdf”文件。如果“jdoe”随机输入网址“ http://www.website.com/pdf/uploads/test.pdf ”,有没有办法不允许他查看/下载该文件?

提前感谢您的帮助!

4

2 回答 2

1

是的,这是可能的。您所要做的就是检查当前用户的权限和readfile()正确的标题。

例如。像这样:

$file = 'somefolder/file.pdf';

if (file_exists($file) && userHasPermission($file)) {
    header('Content-Type: application/pdf');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    die;
}

将这些文件放在公共目录之上也很好。这样,除了通过该脚本(当然是 ftp)之外,没有人能够以其他方式访问它。

于 2013-10-10T16:46:16.717 回答
0

是的,你可以这样做。但是您也必须将有关权限的信息保存在数据库中。我认为您需要更多 2 张桌子:

  • 文件
  • 用户文件

因此您可以在 files 表上注册文件并将用户与 user_files 表中的相应文件相关联。

于 2013-10-10T16:53:01.300 回答