我今天已经问过这个问题了,但这一次我想知道我是否可以通过PHP实现这一点,因为Javascript不适合它。
我有另一台服务器上的文件的链接。如果我向我的用户提供此链接,则会推出标题以从该服务器下载该文件。
我有没有办法捕获这些标题和文件并将下载重定向到用户?我想这样做,以便我可以更改下载的文件名,因为它是 总是'file.zip'。
这可以用PHP吗?
感谢您的帮助。
答案 0 :(得分:2)
您可以使用curl将文件下载到服务器并正确提供(带Content-Disposition标题)。只要您使用HTTP,就无法只发送标头,让其他服务器直接将内容流式传输到客户端。
答案 1 :(得分:1)
你可以这样做,你可以用几种方式来做。
1)(简单)将文件复制到您的服务器,并重命名。将下载链接指向此副本。
2)(更难)创建一个存根php文件,称为,从php中的远程服务器读取文件,并将内容流式传输到脚本输出。这将需要您设置适当的标题等,以及设置您的Web服务器以通过PHP解析。
说真的,我选择选项1.(假设您有合法权利提供内容等)。
答案 2 :(得分:1)
也许你可以使用类似下面的脚本:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/the_path/file.zip");
header('Content-Disposition: attachment; filename="alternate_filename.zip"');
exit();
?>