我正在尝试使可下载的PDF文档的URL对用户不可见,因此他们无法从其他任何位置访问它。我需要隐藏页面左下角(当鼠标悬停时)和浏览器地址栏中的URL打开时的URL。我需要它在所有浏览器上工作。
我的HTML看起来像这样:
<a href="http://www.example.com/files/pdf/a34501.pdf">View PDF</a>
链接应如下所示:
原因是用户必须提供能够下载文档的代码,但如果他们能够看到URL,他们可以轻松下载其他人的文档(他们只需更改“a34501.pdf”部分中的数字) )。
我读过有关使用JavaScript函数加密URL或使用外部PHP文件的内容。但是,我不知道该怎么做。
感谢。
答案 0 :(得分:6)
隐藏网址会让最不懂技术的用户感到困惑,但不是任何愿意下载文件且技术知识非常少的人,如果你需要隐藏你可以使用的代码(或支付墙)后面的文件一个PHP脚本,用于验证用户并吐出相应的文件,一个小例子是这样的:
if($validUser)
{
$path = $fileName;
$size = filesize($path);
$fp = fopen($path, "rb");
$content = fread($fp, $size);
fclose($fp);
header("Content-length: ".$size);
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".$fileName.";" );
echo $content;
}
exit();
这假设您在服务器中具有物理文件,但如果您在数据库或任何其他存储介质中具有这些文件,则可以对其进行修改。当然,您必须首先验证用户是否有权下载该文件,但这取决于您。
答案 1 :(得分:3)
您可以使用php脚本提供文档,同时仍允许php验证用户的会话信息等。
过程如下:
http://domain/download.php?file=58afg71057ga82157
(示例)download.php
根据存储的会话信息验证用户请求 - 如果一切都检出,它会发送文件头()并传递文件内容。这个basic file download tutorial提供了以这种方式提供文件的基础知识。您需要改进这个基础教程,但它应该让您了解该过程的工作原理。
建议: