0

我正在使用 PHP 连接到 MySQL 数据库,客户可以登录到我的网站,它会根据他们的登录等列出表格中的行。

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

例如,他们可以下载文件1234.pdf,如果他们可以查看实际链接,他们可能会想到去同一个位置,但做的文件5678.pdf仅供其他用户下载。

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

谢谢

编辑:

假设客户 A 登录,他们可以查看 table1 中的行

TABLE1 客户文件链接 A 1234.pdf A 5678.pdf B 8765.pdf B 4321.pdf

所以,我不希望客户 A 能够查看客户 B 的链接。

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

4

2 回答 2

1

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

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

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

于 2013-04-08T21:05:46.987 回答
0
<?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();
?>

我想这就是你需要的。

于 2013-06-24T14:45:22.893 回答