在网页上使用PHP查看PDF并禁止用户下载

7
我要写一个网站,让用户可以查看PDF文件,但由于版权法,我不希望他们把文件保存到自己的硬盘上。我正在研究如何使用PHP查看,但我不知道如何禁止用户下载文件。
实际上,我想使用JavaScript来禁止此操作,但其他人建议我不要这样做,因为这会令用户感到烦扰。
所以,如果您有任何建议或帮助,将不胜感激。

4
您无法完全阻止他人将内容下载到自己的硬盘上。因为他们从您的网站查看内容这一事实意味着他们已经以某种方式下载了它。 - zneak
2
JavaScript 可以在任何浏览器中关闭,因此永远不要依赖它来处理关键性的事物。 - govinda
6个回答

6

使用CSS opacity: 1.0<div> 放置在您的内容上方...

您可以使用<object><iframe>输出PDF,然后放置一个绝对定位的<div>并使用z-index覆盖您的PDF。使用css opacity: 1.0

现在,当用户尝试单击或复制时,他们什么也得不到,因为他们实际上是在单击空白的<div>

这是一种hack方法,但它有效!用户将能够阅读内容,他们可以截屏,但他们将无法实际复制文本并将其粘贴到任何地方。


3

方法 01

使用谷歌图书实现

<iframe frameborder="0" scrolling="no" style="border:0px" src="https://books.google.com.kh/books?id=e5MkzETNcsgC&lpg=PP1&dq=typography&pg=PA11&output=embed" width="500" height=500>
</iframe>

enter image description here

在上图中显示的是代码 Embed。没有可供下载或打印的选项。Google文档可以防止下载,但允许使用 保存到Drive 选项。然后在Drive中我可以下载它。但 Google books不允许任何这样的操作。

02

方法02

使用Google Drive

右键点击pdf,然后转到分享(如下图所示)

03

然后转到左下角的高级选项

05

勾选两个复选框。复制embed链接并将其粘贴到src中。 不允许下载和保存驱动器选项

注意:方法01方法02已经测试过


1

Try this one:

<iframe  src="test1.pdf" scrolling="no" frameborder="0" height="100%" width="100%" style="position:absolute; clip:rect (190px,1100px,800px,250px);">


1

您无法阻止访问者下载、复制或抓取您输出到他们浏览器的任何内容。如果他们可以查看它,他们总是可以截屏。这就引入了解决您问题的最佳方案:只需提供文档的图像副本而不是实际的PDF文件。您可以使用Photoshop轻松地将PDF文件转换/批量转换为JPEG。



1

希望我回复不算太晚。但是这里有一些可以防止用户的方法。使用iFrame来显示你的PDF,并确保使用Google进行显示。我使用了以下代码:

 <iframe src="http://docs.google.com/gview?url=http://www.tutorialspoint.com/php/php_tutorial.pdf&embedded=true" style="width:600px; height:500px;" frameborder="0">
</iframe>

在这里,您可以简单地更改url=http://www.tutorialspoint.com/php/php_tutorial.pdf并将其替换为您自己保留PDF的URL。

用户可以查看页面源代码并获取PDF的直接链接,因为iframe源代码中实际上包含了直接文件路径。 - MichaelTheDev

0

试一下这个

<embed src="http://URL_TO_PDF.com/pdf.pdf#toolbar=0&navpanes=0&scrollbar=0" width="500" height="500">

3
您能否解释一下这是如何解决不下载 PDF 文件的要求的? - Nico Haase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接