0

我需要限制人们下载 pdf 的次数(不超过 500 次)。理想情况下,它会将点击计数为 500,然后删除链接。我刚刚想到,我还需要阻止每个人多次点击。基本上我被要求允许前 500 人下载一个文件然后结束它。首选 PHP 或 javascript(在 wordpress 网站上)

问候

富有的

4

3 回答 3

5

您不想限制可以单击链接的次数,您想限制特定链接返回 PDF 文件的次数。

换句话说,您的链接不应直接指向所请求的资源(PDF),而应指向一个 PHP 文件,该文件可以断言该文件的下载次数不超过 500 次。

这是一个如何将 www 目录之外的文件输出到浏览器的示例。

于 2012-11-21T14:33:18.797 回答
0

链接到将控制访问并在允许的情况下提供 PDF 的 PHP 脚本(例如,readfile()使用 .$_SESSION来管理单个用户下载的次数 - 下载后更新值。

使用数据库表或其他数据源计算总下载量,当下载量达到 500 次时,您可以拒绝对 PDF 的所有访问。

于 2012-11-21T14:36:35.857 回答
0

要扩展 Sherlock 的解决方案,您希望将 PDF 隐藏在 PHP 文件后面。当我说隐藏时,我的意思是把它放在一个不能直接访问的地方:考虑将它移出你的“www root”或使用 .htaccess 来防止直接访问文件。如果文档是可猜测且可公开获得的,大多数高级用户将弄清楚如何访问您的 PDF。

您的 PHP 应该简单地执行以下操作:

  • 检查文档的下载次数是否少于 500 次,或者用户的 IP 对文档具有“解锁访问权限”(您可能希望允许一个“窗口”,在此期间用户可以再次下载文档 - 有些人会open在他们实际上想要save它,并且不知道如何从他们的阅读器保存到磁盘) - 否则显示错误
  • 存储此文档的用户 IP 地址
  • 发送文件类型的适当标题:header('Content-type: application/pdf');
  • 发送文件名:header('Content-Disposition: attachment; filename="the document.pdf"');
  • 发送文件内容:readfile($pathToPDF);
于 2012-11-21T14:40:59.430 回答