【发布时间】:2017-12-19 08:10:33
【问题描述】:
我的网站是用 PHP 构建的,并且我集成了条带支付。如果用户通过条带付款成功,那么我需要打开一个托管的 PDF 文件 在运行代码的同一台服务器上。
以下是我用来打开 PDF 文件的代码:
$file = 'test.pdf';
$filename = 'test.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
我不希望直接访问 test.pdf 文件。因此,如果我将 test.pdf 的权限更改为 777,则代码运行并打开 PDF 文件,但它也使任何人都可以通过直接链接打开文件。如果我更改权限以便对该文件的访问仅限于代码文件,则它不会打开 pdf 文件。我怎样才能做到这一点,以便在成功条纹支付后可以打开 PDF 文件,而不是通过直接 URL。
【问题讨论】:
-
服务器端权限几乎是无关紧要的:如果您不将文件放入通过您的网络服务器公开可用的目录中,则它只能通过您的脚本获得。您应该在那里进行一些权限检查
-
那么我应该为包含pdf文件的文件夹设置什么权限?
-
选择允许您的脚本读取它们的权限。这取决于您的网络服务器与哪个用户一起运行、哪个用户编写 PDF 文件以及在该服务器上运行哪些其他应用程序。
标签: php