【发布时间】:2018-07-18 01:31:31
【问题描述】:
我想用php下载一个远程文件,保存并输出给用户。我想缓冲文件,因为有些用户可以同时下载同一个文件,节省带宽。
我找到了一个直接从远程服务器下载文件的脚本:
set_time_limit(0);
$url = 'http://example.com/example.zip';
$file = basename($url);
$fp = fopen($file, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
【问题讨论】:
-
您必须在本地缓存文件以供多个用户查看文件。
-
@JasonK 是的。但我认为代码不起作用...
标签: php