+ -
当前位置:首页 → 问答吧 → PHP curl如何得到下载进度(求教高手)

PHP curl如何得到下载进度(求教高手)

时间:2011-11-18

来源:互联网

PHP code

function dlFile($file,$newfile)
{
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $file);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 301); 
curl_setopt($curl, CURLOPT_TIMEOUT, 301); 
curl_setopt($curl, CURLOPT_FILE, $write); 
$data = curl_exec($curl);
curl_close($curl);
//curl_getinfo($curl,$data);
$write = @fopen($newfile,"w");
return TRUE;
}

$url='http://xxx.com/bigFile.zip';
$file_dir='F:\tmp\up/'.time().'.'.'zip';//图片保存路径
dlFile($url,$file_dir);


如何获得文件下载进度?

作者: franzhong   发布时间: 2011-11-18

CURLOPT_NOPROGRESS。
curl_getinfo是可以获得当前内容的,不过要让你的curl前提支持回调,查一查吧。
不过现在很多做法是使用apc,比如gmail的上传文件就是apc实现的,keep alive长连接,还稳定。个人建议你用apc来实现要好一些。

作者: hellodifa   发布时间: 2011-11-18

引用 1 楼 hellodifa 的回复:

CURLOPT_NOPROGRESS。
curl_getinfo是可以获得当前内容的,不过要让你的curl前提支持回调,查一查吧。
不过现在很多做法是使用apc,比如gmail的上传文件就是apc实现的,keep alive长连接,还稳定。个人建议你用apc来实现要好一些。

等下再研究apc
CURLOPT_NOPROGRESS=0 如何得到进度

作者: franzhong   发布时间: 2011-11-18

CURLOPT_NOPROGRESS
启用时关闭curl传输的进度条,此项的默认设置为启用。

Note:
PHP自动地设置这个选项为TRUE,这个选项仅仅应当在以调试为目的时被改变。

看来并不是应该使用的方法啊。还有啥别的招没
刚查了apc是阿斯匹林

作者: franzhong   发布时间: 2011-11-18

相关阅读 更多