隐藏HTML中的下载链接

时间:2015-08-12 22:57:37

标签: html url hyperlink

我通过着陆页从我的网站下载提供pdf文档。

我想隐藏地址栏中显示的网址/链接,当我将鼠标悬停在网页上的下载按钮上时,链接无法共享。

最好的方法是什么?请仔细解释。

由于

2 个答案:

答案 0 :(得分:1)

好的,你不能用普通的HTML做到这一点。您可以使用各种技巧,但它们可能是用户体验的问题,您将使用服务器端语言。

你可以做的是创建一个php页面,按你想要的方式命名(让我们说download.php),然后链接到那个页面。页面应该是这样的:

// Path to the file
$path = '/home/folder/yourfile.pdf';

// This is based on file type of $path, but not always needed    
$mm_type = "application/octet-stream";

//Set headers
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($path)) );
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header("Content-Transfer-Encoding: binary\n");

// Outputs the content of the file
readfile($path); 

exit();

这样您只需链接到download.php页面即可下载/打开PDF,如下所示:

<a href="http://www.somesite.com/download.php">Download</a>

根据BenjaminC建议

进行编辑

另一种可能性是将其连接到数据库。数据库有一个名为downloads_table的表,里面有2个字段:

  1. 秘密:char(32)
  2. 已下载:int(1) dafault 0
  3. 然后您创建一个md5字符串     $ secret = md5(rand(1000,9999999));

    将其放在secret字段内,创建链接:

     <a href="http://www.somesite.com/download.php?s=ahanlskdhf78asdf87absdfas8d7f6">Download</a>
    

    用户收到/看到一个链接,按下时你要编辑上面代码的第一行,检查数据库中的downloaded字段= 0是否比继续下载,否则该人看到错误页。 这样它只能下载一次。

答案 1 :(得分:0)

(编辑)

如果将来这对任何人都有用,可以在这个小提琴中看到功能:https://jsfiddle.net/aznjr87g/

从谷歌下载2.1.3 jquery.min.js。

(编辑结束)

这可以使用Html5的下载属性来实现。

<a href="#" download="path/path/file.dpf">Download PDF</a>

如果将鼠标悬停在其上,则只显示yoursite.com /#