我有一个问题,我不知道是否有一个解决方案。
我的问题是我有一个这样的下载链接:
http://remotewebsite.com/file.zip
文件是托管在另一个网站不是我的。我希望用户在不知道原始url的情况下下载文件比如当用户打开我的链接
http://mywebsite.com/file.zip
它开始下载文件
可以把它想象成承载文件的网站和用户之间的隧道。例如,用户从远程网站请求的每个数据包都会经过我,然后发送给用户。
我不知道是否还有其他简单的方法。
我很抱歉,如果这听起来很愚蠢,但我真的希望它能工作。
使用CURL
或file_get_contents
获取文件的内容,并将其与相应的头部详细信息一起输出到浏览器。
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");
您可以使用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"