-1

我有一个问题,我不知道是否有解决方案。

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

http://remotewebsite.com/file.zip

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

http://mywebsite.com/file.zip

它开始下载文件。

把它想象成我是托管文件的网站和用户之间的隧道。例如,用户从远程网站请求的每个数据包都会通过我,然后发送给用户。

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

如果这听起来很愚蠢,我很抱歉,但我真的希望它可以工作。

4

2 回答 2

6

只需使用CURLor获取文件的内容file_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");
于 2013-03-07T16:48:46.200 回答
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”。

于 2013-03-07T16:52:10.827 回答