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

Dig*_*ato 5 php proxy download

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

Byr*_*ock 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);
Run Code Online (Sandbox Code Playgroud)

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


小智 8

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

        fpassthru($fp);
        exit;
Run Code Online (Sandbox Code Playgroud)

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