[高分求助]Curl如何不get整个文件就获得文件的真实大小

向PHP达人请教个curl的问题,谢谢!

背景:需要获得一个远程文件的大小,但是用head method返回的content-length为0,用get或者post方法才能返回正确的content-length(即使没有get完,例如文件有5MB,只get了1K就中止连接,content-length还是5MB)。

问题:设置CURLOPT_RANGE = '0-1024',curl_exec返回的content-length就变成了1025。请问curl里有没有别的参数或者别的方法可以不用下载整个文件,就获得文件真实的大小。

PHP code

$handle = curl_init();
......
$range = "0-1023';
curl_setopt( $handle, CURLOPT_RANGE, $range );
$resp = curl_exec( $handle );
echo $resp['headers']['content-length'];

作者: isec   发布时间: 2011-05-29

为什么不用 get_headers 函数呢?

作者: xuzuning   发布时间: 2011-05-30

function remote_filesize($url_file){ 
  if (!remote_file_exists($url_file)) return false; 
  $headInf = get_headers($url_file,1); 
  return $headInf['Content-Length']; 
}

作者: blizzf99   发布时间: 2011-05-30