[高分求助]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
背景:需要获得一个远程文件的大小,但是用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'];
}
if (!remote_file_exists($url_file)) return false;
$headInf = get_headers($url_file,1);
return $headInf['Content-Length'];
}
作者: blizzf99 发布时间: 2011-05-30