我需要我的服务器充当第三方服务器(文件最初所在的位置)和最终用户之间的代理。也就是说,我的服务器从第三方服务器下载文件,然后用户从我的服务器下载文件。这应该导致带宽为文件大小的两倍。如何使用PHP实现此过程?
答案 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;
这只是使用正确的标题将远程文件下载到浏览器。