![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 22:08 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 想用curl获取下载文件的大小【多线程下载】 |
| 可打印版本 1,133 / 2 |
| 第1楼 ybbao | 发表于 2010-08-20 10:20 |
| 新手上路 发帖 8 积分 8 | |
|
想用curl获取下载文件的大小【多线程下载】 想做一个多线程下载的批处理
Curl可以分段下载后再拼合,不知道curl如何预先获取文件的大小,然后再去计算需要分多少段? |
|
| 第2楼 jinzihao | 发表于 2010-08-20 13:18 |
| 初级用户 发帖 62 积分 111 来自 http://ms-dos.cz.cc | |
|
如果楼主指的是PHP的curl的话,可以看这段代码:
$file_sizeofurl = a_array['Content-Length']; --------------------2.用curl获取远程文件大小 如果服务器禁止get_headers 怎么办? 换一种办法,用curl 我总觉得curl就像一个虚拟的用户,什么都能模仿 下面直接给出一个老外的函数 请注意 echo ' head-->'.$head.'<----end '; 这句是我加的,为了知道header里面到底包含了什么东西 function remote_filesize($uri,$user='',$pw='') { // start output buffering ob_start(); // initialize curl with given uri $ch = curl_init($uri); // make sure we get the header curl_setopt($ch, CURLOPT_HEADER, 1); // make it a http HEAD request curl_setopt($ch, CURLOPT_NOBODY, 1); // if auth is needed, do it here if (!empty($user) && !empty($pw)) { $headers = array('Authorization: Basic ' . base64_encode($user.':'.$pw)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } $okay = curl_exec($ch); curl_close($ch); // get the output buffer $head = ob_get_contents(); // clean the output buffer and return to previous // buffer settings ob_end_clean(); echo ' head-->'.$head.'<----end '; // gets you the numeric value from the Content-Length // field in the http header $regex = '/Content-Length:s([0-9].+?)s/'; $count = preg_match($regex, $head, $matches); // if there was a Content-Length field, its value // will now be in $matches[1] if (isset($matches[1])) { $size = $matches[1]; } else { $size = 'unknown'; } //$last=round($size/(1024*1024),3); //return $last.' MB'; return $size; } |
|
| 第3楼 ybbao | 发表于 2010-08-20 15:42 |
| 新手上路 发帖 8 积分 8 | |
|
我是bat,不是用php的,不好意思
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |