免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4269 | 回复: 5
打印 上一主题 下一主题

知道下载地址,怎么获取文件大小? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-10 11:18 |只看该作者 |倒序浏览
我现在是先wget这个下载地址,下载到本机后再-s获得文件大小
  1. $size = -s $file;
复制代码
我只是想判断文件大小是否超过一个值,并不需要这个文件,而且文件很大wget一次要很长时间。
有没有不用真正下载就可以得到文件大小的方法呢?

wget下载的时候有输出
  1. Connecting to ……connected.
  2. HTTP request sent, awaiting response... 200 OK
  3. Length: 277,317 (271K)
复制代码
这个字节提示而后再执行下载过程。
不知道可否利用这个呢?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2012-02-10 11:27 |只看该作者
本帖最后由 flw 于 2012-02-10 11:27 编辑

HEAD 请求就可以了。或者如果不支持 HEAD 请求的话,直接 GET,但别收完。

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
3 [报告]
发表于 2012-02-10 11:44 |只看该作者
curl -I
wget --spider

论坛徽章:
0
4 [报告]
发表于 2012-02-10 13:58 |只看该作者
ziyunfei 发表于 2012-02-10 11:44
curl -I
wget --spider

多谢!两个命令都可以诶!
我用的curl -I之后
  1. print $1 if ($result =~ /Content-Length: \s*(\d+)/);
复制代码
就能得到文件大小了

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2012-02-10 15:01 |只看该作者
操,都用了 Perl 了,还 curl 个毛啊。
用 LWP。

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
6 [报告]
发表于 2012-02-10 15:51 |只看该作者
楼主,既然都用perl了,就不要调用外部命令了
  1. use LWP::UserAgent;
  2. print LWP::UserAgent->new->head("http://passport.ixpub.net/images/noavatar_middle.gif")->header("Content-Length")
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP