2012-09-01 282 views
2

当我使用cURL下载某个文件时,cURL会将文件打印到浏览器。但是我想打开'保存到'浏览器下载窗口。我怎样才能做到这一点?cURL +通过浏览器下载文件

$c = curl_init(); 
curl_setopt($c, CURLOPT_URL, $url); 
curl_setopt($c, CURLOPT_POSTFIELDS, "file_name=test.rar"); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); 
curl_exec($c); 
curl_close($c); 

回答

3
ini_set('memory_limit','128M'); 
$content = curl_exec($c); 
curl_close($c); 

header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename=your_file.txt'); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 
header('Content-Length: ' . strlen($content)); 
ob_clean(); 
flush(); 
echo $content; 
flush(); 
+0

我越来越内存泄漏致命错误:67108864个字节允许内存大小耗尽 –

+0

使用'的ini_set( 'memory_limit的', '128M');' – Peter

+0

所以,如果我的理解是正确的,卷曲的意志下载文件后,我得到了'保存到'窗口?这是为什么? –