0

我今天已经问过这个问题了,但是这次我想知道我是否可以通过 PHP 来实现这个,因为 Javascript 不适合它。

我有一个指向另一台服务器上的文件的链接。如果我将此链接提供给我的用户,则会推出标头以从该服务器下载该文件。

有没有办法让我捕获这些标头和文件并将下载重定向给用户?我想这样做,以便我可以更改下载的文件名,因为它始终是“file.zip”。

这可以用PHP吗?

感谢您的任何帮助。

4

3 回答 3

2

您可以使用curl将文件下载到您的服务器并正确提供它(使用Content-Disposition标头)。只要您使用 HTTP,就无法仅发送标头并让另一个服务器将内容直接流式传输到客户端。

于 2009-02-12T13:47:27.320 回答
1

你可以做到这一点,你可以通过多种方式做到这一点。

1)(简单)将文件复制到您的服务器,然后重命名。将您的下载链接指向此副本。
2)(更难)创建一个存根php文件,称为,从php中的远程服务器读取文件,并将内容流式传输到脚本输出。这将需要您设置适当的标头等,以及设置您的网络服务器以通过 PHP 进行解析。

说真的,我会选择选项 1。(假设您拥有提供内容的合法权利等)

于 2009-02-12T13:48:54.603 回答
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();
?>
于 2009-02-12T13:59:07.463 回答