【问题标题】:how to hide the actual download folder location如何隐藏实际的下载文件夹位置
【发布时间】:2012-06-15 09:15:39
【问题描述】:

我想隐藏下载文件夹的位置,以便用户在下载文件时看不到该位置。我认为这可以使用 .htaccess 文件来完成,但我该怎么做呢?或者,如何使用 PHP 来完成?

【问题讨论】:

  • 不,你不能。这是让用户对正在下载的文件做他​​想做的事情的基本方法。
  • 我认为他的意思是如何隐藏下载脚本的URL
  • @yent 实际上我只是想对用户隐藏文件所在的位置
  • 哦,天哪,不是这样读的……使用一些 url 重写应该会对你有所帮助。

标签: php .htaccess


【解决方案1】:

这就是我在 PHP 中的做法:

<?php
$fakeFileName= "fakeFileName.zip";
$realFileName = "realFileName.zip";

$file = "downloadFolder/".$realFileName;
$fp = fopen($file, 'rb');

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$fakeFileName");
header("Content-Length: " . filesize($file));
fpassthru($fp);
?>

此外,如果您不希望任何人访问文件位置,请将名为 .htaccess 的文件放入您的下载文件夹,其中仅包含内容:

deny from all

我稍微更改了代码。首先,当我说假文件名和真实文件名时,假文件名是下载器下载文件的名称,其中真实文件名是您服务器上下载文件夹中实际文件的名称。

另外,我检查以确保用户已登录并且能够下载文件。如果他选择下载文件,则会在新选项卡中调用 PHP 文件(使用上面的下载代码),然后在文件末尾我有以下行:

exit;

所以当他点击下载链接时,新标签页中会快速弹出一个空白页面,然后快速退出并开始下载。

编辑:下载链接如下所示:

<a href="simpleDown.php?id=<?php echo $_GET['id']; ?>" target="_blank">Download!</a>

其中id 是数据库中下载的id,在上面的下载脚本中,我找到了带有id 的条目,然后得到它的真实文件名和假文件名。不过,您可以在没有数据库的情况下执行此操作。

【讨论】:

  • .htaccess .htacess(至少在默认设置下)
  • @iedoc 但是,我如何更改下载 url 的域。
【解决方案2】:

也许您希望查看 Mod Rewrite,或者使用您的 PHP 脚本来访问文件,只需转到 file.php?f=someHash,然后使用八位字节流强制用户下载文件。

【讨论】:

  • +1 - 这将是理想的解决方案。通过 PHP 脚本传递所有下载不仅意味着您可以将数据目录移出公共根目录,而且还可以在顶部进行安全检查。理想情况下也不要按文件名引用文件,使用映射到文件的 ID,以便在不破坏现有链接的情况下随意更改名称。
【解决方案3】:

您要做的是将用户定向到 fake_url.php,然后将该 URL 重写为不同的文件 - real_url.php。这有效地将real_url.php 呈现为隐藏,因为用户不知道.htaccess 文件中发生的重定向。

RewriteRule fake_url.php(.*)$ real_url.php?$1 [L,QSA]

在您的real_url.php 中,您可以读取通过重定向传递的参数,然后使用类似于readFile() 的内容从real_url.php 中将适当的文件发送回用户

所以用户只会看到 URL -
https://my-secret-site/download.php?file=file_to_download

在您的real_url.php 中,您将通过检查$_GET['file'] 参数来了解请求的文件。

用户正在下载的文件的实际位置不再重要。所有下载都通过fake_url.php 进行,只有该脚本需要知道下载文件夹的真实位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多