PHP将外部下载传递给用户

时间:2009-07-01 15:09:10

标签: php file download cloud

我想知道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时,向他们发送其他服务器的下载而不向用户提供直接网址?我知道我可以做一个文件(这里是[外部文件])。但我希望所有带宽都通过服务器C.服务器C几乎只是一个重定向。

谢谢, 詹姆斯

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

hum

您可以使用NAT或代理。但这将非常困难。

只有通过修改标题才可能无效。

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