我遇到了问题,我不知道是否有解决方案。
我的问题是我有这样的下载链接:
http://remotewebsite.com/file.zip
该文件托管在另一个不是我的网站上。 我希望用户在不知道原始网址的情况下下载文件 例如当用户进入我的链接时
http://mywebsite.com/file.zip
它开始下载文件。
将其视为托管文件的网站与用户之间的隧道。 例如,每个数据包用户从远程网站请求它将通过我,然后它将被发送给用户。
我不知道是否有另一种简单的方法可以做到这一点。
我很抱歉,如果它听起来很愚蠢,但我真的希望它能起作用。
答案 0 :(得分:6)
使用CURL
或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");
答案 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”。