隐藏主要的下载URL

时间:2013-03-07 16:46:01

标签: php download

我遇到了问题,我不知道是否有解决方案。

我的问题是我有这样的下载链接:

http://remotewebsite.com/file.zip

该文件托管在另一个不是我的网站上。 我希望用户在不知道原始网址的情况下下载文件 例如当用户进入我的链接时

http://mywebsite.com/file.zip

它开始下载文件。

将其视为托管文件的网站与用户之间的隧道。 例如,每个数据包用户从远程网站请求它将通过我,然后它将被发送给用户。

我不知道是否有另一种简单的方法可以做到这一点。

我很抱歉,如果它听起来很愚蠢,但我真的希望它能起作用。

2 个答案:

答案 0 :(得分:6)

使用CURLfile_get_contents获取文件的内容,然后将其输出到具有相应标头deatils的浏览器。

header('Content-Description: File Transfer');
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename=file.zip');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
ob_clean();
flush();
echo file_get_contents("http://remotewebsite.com/file.zip");

答案 1 :(得分:1)

您可以使用URL重写机制将所有请求路由到file.zip到PHP脚本,该脚本将从远程服务器下载真实文件并将其提供给您的客户端。

如果您指定使用的平台(Apache / IIS),我可以提供如何实现该平台的详细示例。

对于IIS 7或更高版本,请在web.config文件中使用此文件:

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="file.zip" patternSyntax="ExactMatch" stopProcessing="true">
                <match url="file.zip" />
                <action type="Rewrite" url="download_zip.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>

"download_zip.php"中使用此处包含的PHP代码“nauphal”。