0

是否可以让用户访问 .pdf 文件 - 意味着允许他们下载它,例如通过单击按钮 - 而不会在过程中透露完整的 URL?

所以说我有一个文件www.mydomain.com/content/pdf/valuable_ebook.pdf

我想提供一个触发下载的链接,但只显示 valid_ebook.pdf ,而不是完整路径(可以共享,导致无偿下载)。

我确实考虑创建文件的副本并将其临时放置在特定于某个下载链接的位置。但我想知道是否有更简单的方法来做到这一点。

就查看而言,我正在考虑制作一个 iframe,它不会泄露完整的 URL……所以即使是“查看源”也不容易从上面确定完整的 URL。有什么办法可以做到这一点?

当然,可能有允许查看 pdf 的 java 或 flash 应用程序(说到这 - 有没有人有一个很好的例子?)。

这样的应用程序是否有可能具有不显示完整 URL 的下载功能?这将如何与浏览器通信?

或者是否可以通过 .htaccess 限制从上面对 URL 的访问,并放置一些服务器端逻辑以仅当您是注册/付费会员或其他人时才授予访问权限?

我只是想知道是否有任何远程可能性允许在不泄露文件位置的情况下下载/查看文件。

感谢您提供有关浏览器如何与服务器通信以开始下载的任何想法或见解...

PS:我意识到一旦你下载了一个数字项目,分享它很容易,但我试图设置至少一些障碍来过滤任何泄漏。

部分回答: 我实际上找到了一个很好的解决方案,可以在不泄露源 URL 的情况下下载文件(至少不是我知道的任何内容 - 所以大部分用户可能不会知道)。

// FILE www.mydomain.com/download.php

if($user_has_access_to_download == TRUE)
{
  $file = 'content/pdf/valuable_ebook.pdf';
  header('Content-Type: application/x-octet-stream');
  //header('Content-type: application/pdf');
    //wondering which is better?                
  header('Content-Disposition: attachment;filename="your_ebook.pdf"');
  header("Content-Length: " . filesize($file));
  // header("Connection: close"); 

  readfile($file);
}

现在点击链接www.mydomain.com/download.php将触发下载,而不是显示源文件。

现在我只需要找到有助于查看(而不是<iframe src="www.mydomain.com/content/pdf/valuable_ebook.pdf">)的东西,因为这会带来 2 个问题:1. 可以轻松查看和共享源 URL 2. 浏览器提供“另存为”按钮 - 但我宁愿让它们通过我download.php要跟踪等等...

可能我将不得不尝试找到某种 Java 应用程序来查看 pdf...

4

2 回答 2

1

我会通过在 url 中添加某种参数来处理这个问题,这样你的新链接就会看起来像www.mydomain.com/content/pdf/valuable_ebook.pdf?code=abc123where abc123is a new random value for each person you give the link out。显然,让它长于 6 个字符。

然后,您将所有代码存储在数据库中。从这里你有几个选择。您只能让他们选择下载 PDF 指定的次数。当代码的使用次数超过此次数时,他们可能会联系您下载更多次,但您可以轻松地阻止任何在很多地方共享链接的人。

于 2013-07-22T15:36:30.667 回答
0

部分答案: 我找到了一个很好的解决方案,可以在不泄露源 URL 的情况下下载文件。为了完整起见,将其发布在这里。

// FILE www.mydomain.com/download.php

if($user_has_access_to_download == TRUE)
{
  $file = 'content/pdf/valuable_ebook.pdf';
  header('Content-Type: application/x-octet-stream');
  //header('Content-type: application/pdf');
    //wondering which is better?                
  header('Content-Disposition: attachment;filename="your_ebook.pdf"');
  header("Content-Length: " . filesize($file));
  // header("Connection: close"); 

  readfile($file);
}

现在点击链接www.mydomain.com/download.php将触发下载,而不是显示源文件。

让我知道是否有一个超级简单的技巧可以找到此方法的源 URL,或者您是否有任何其他想法!

于 2013-07-24T18:26:02.677 回答