0

我想知道 PHP 中是否有任何方法可以将外部下载传递给用户?我想对脚本执行的操作取决于某些条件,从服务器 A 或服务器 B 向用户发送文件。但是,我不希望用户知道到任一服务器的直接 url。

例如:用户访问(在服务器 C 上):http ://example.com/download?id=1234 服务器 A 的归档地址: http ://servera.com/1234.exe 服务器 B 的归档地址:http: //serverb.com/1234.exe

有没有办法,当有人访问http://example.com/download?id=1234时,在不给用户直接 URL 的情况下向他们发送其他服务器的下载?我知道我可以做一个文件([此处的外部文件])。但我希望所有带宽都通过服务器 C。服务器 C 几乎只是一个重定向。

谢谢,詹姆斯

4

2 回答 2

2

客户端必须在某种程度上知道他们从哪个服务器下载,否则他们将无法连接到它。

编辑:

如果您不希望浏览器的地址栏发生变化,可以尝试Content-disposition像这样使用标题:

header("Content-disposition: attachment;filename=1234.exe");
//then output the file contents

注意:这个 PHP 脚本必须在服务器 A 和服务器 B 上。所以服务器 C 将重定向到http://servera.com/download.phphttp://serverb.com/download.php

于 2009-07-01T15:14:07.463 回答
0

您可以通过使用 NAT 或代理来实现。但这将非常困难。

仅通过修改标头可能无法正常工作。

编辑:不,我认为,您必须一次为所有服务器添加代理(例如网关)。

于 2009-07-01T15:21:23.907 回答