如何使用我的服务器作为代理通过PHP下载文件?

时间:2010-10-29 18:07:10

标签: php proxy download

我需要我的服务器充当第三方服务器(文件最初所在的位置)和最终用户之间的代理。也就是说,我的服务器从第三方服务器下载文件,然后用户从我的服务器下载文件。这应该导致带宽为文件大小的两倍。如何使用PHP实现此过程?

2 个答案:

答案 0 :(得分:13)

非常非常简单:

$url = $_GET['file'];
$path_parts = pathinfo($url);

$ext = $path_parts['extension'];
$filename = $path_parts['filename'];

header("Content-type: application/$ext");
header("Content-Disposition: attachment; filename=$filename");

echo file_get_contents($url);

如果文件大于几兆字节,请使用fopen fread和frwrite以块的形式下载文件并以块的形式发送给客户端。

答案 1 :(得分:6)

        $fp = fopen($url, 'rb');
        foreach (get_headers($url) as $header)
        {
            header($header);
        }

        fpassthru($fp);
        exit;

这只是使用正确的标题将远程文件下载到浏览器。