PHP/MySQL隐藏文件链接


PHP/MySQL Hide file links

我使用PHP连接到MySQL数据库和客户可以登录到我的网站,它列出的行形成一个表基于他们的登录等

我需要能够显示一个<a href="...."></a>链接到数据库中的文件名,但我不希望用户能够看到链接到文件。

例如,他们可以下载文件1234.pdf,如果他们能看到实际的链接,他们可能会想到去相同的位置,但做文件5678.pdf,这只意味着另一个用户下载。

所以基本上我想隐藏链接在一个长字符串或其他东西,但我不知道从哪里开始-任何想法?

感谢编辑:

假设客户A登录,他们可以查看表1

中的行

表1客户file_link一个 1234. pdf一个 5678. pdfB 8765. pdfB 4321. pdf

因此,我不希望客户A能够查看客户b的链接。

我的意思是,如果客户A悬停在一个链接上,可以看到主文件路径,他们可以在他们的网络浏览器中输入这个,然后将文件名(猜猜)更改为其他文件名,并下载另一个客户文件

如果您打算不让其他人看到文件链接,那么您可能也不希望搜索引擎看到它们。阻止用户尝试此类内容的典型方法是使用一个特定的页面来刷新文件,而不是直接链接到该文件。例如,

<a href="download.php?fileid=123">Download</a>

然后在download.php中,您可以检查用户权限并使浏览器下载文件

<?php 
    $file = 'file1234.pdf';
    $file_url = 'http://www.test.com/files/' . $file;
    header('Content-Type: application/octet-stream');
    header('Content-Transfer-Encoding: Binary'); 
    header('Content-disposition: attachment; filename="' . $file_url . '"'); 
    readfile($file_url);
    die();
?>