我正在构建一个在某些时候可以查看 PDF 文件的系统。
这些文件需要锁定,以便系统外的任何人都无法查看它们。这意味着这些文件不能直接访问,只能由服务器访问以显示给用户。
我有一个documents
如下所示的文件夹:
.htaccess
test.pdf
test.txt
在我的.htaccess中,我有以下内容:
Order Allow,Deny
Deny from all
这实际上阻止我直接访问该文件example.com/documents/test.pdf
不过,我仍然需要在我的系统内查看该文件,但它也无法使用直接 URL 加载它。因此,我在documents
文件夹外创建了一个名为 的文件load_pdf.php
。该文件如下所示:
header("Content-Type: application/pdf");
$pdf = file_get_contents('documents/test.pdf');
echo $pdf;
成功了!我可以像这样嵌入文件:
<embed src="/load_pdf.php"></embed>
但是,有一个问题,任何人都可以load_pdf.php
直接在浏览器中加载,从而显示本不应该被访问的 PDF 文档。
有什么方法可以阻止load_pdf.php
加载,除非它正在由我的元素中的服务器加载<embed>
?
答案1
您可以指定要访问文件的 IP 地址,或者如果您已登录,则使用特定的电子邮件 ID 来允许查看。
您可以在 load_pdf.php 开始时指定所有这些内容
答案2
没有。
https://stackoverflow.com/questions/4930914/prevent-pdf-file-from-downloading-and-printing
最终你需要:
为每个页面创建图像
通过您自己的界面(html、flash 等)在网络上向用户呈现这些内容
答案3
您可以按照以下步骤进行操作:-
<Files *test.pdf>
Order allow,deny
Deny from all
</Files>
<Files *test.txt>
Order allow,deny
Deny from all
</Files>