PHP / MySQL隐藏文件链接

时间:2013-04-08 20:58:53

标签: php html mysql

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

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

例如,他们可以下载文件1234.pdf,如果他们可以查看实际链接,他们可能会想到去同一个位置但是要做文件5678.pdf,这只是为了让其他用户下载

所以基本上我想隐藏一个长串或者什么的链接,但我不知道从哪里开始 - 任何想法?

由于

编辑:

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

中的行

TABLE1 客户file_link A 1234.pdf A 5678.pdf B 8765.pdf B 4321.pdf

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

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

2 个答案:

答案 0 :(得分:1)

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

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

然后在download.php中,您可以检查用户权限和make the browser download the file

答案 1 :(得分: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();
?>

我认为这就是你需要的。