【问题标题】:showing PDF file for restricted users为受限用户显示 PDF 文件
【发布时间】: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


【解决方案1】:

您可以使用“全部拒绝”来阻止 .htaccess(或虚拟主机配置)直接访问文件。如果服务器用户(例如 www-data)对 pdf 具有读取和执行权限,则“readfile()”将起作用

【讨论】:

    猜你喜欢
    • 2010-12-23
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多