无论如何使用javascript(或jquery like)获取图像文件大小

时间:2010-07-17 17:03:08

标签: javascript jquery

像:

<img src="http://www.google.com/intl/en_ALL/images/srpr/logo1w.png">

我想获取logo1w.png文件大小7.3kb

如何实施?

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

您可以对图片网址执行HTTP HEAD请求。这将返回HTTP标头,其中包括content-length(a.k.a。文件大小)。这确实需要向服务器发出额外请求,这在生成映像时效率不高,而不是静态服务。

答案 2 :(得分:3)

我不知道有任何一种方法可以始终如一地获得完全文件大小,但如果你愿意跳过一些箍,你可以:

1)根据尺寸和文件类型进行估算。由于压缩技术存在一些广泛的变化,但你可能会运行一些统计数据并提出一个不太合适的启发式算法。

2)在IE中,使用图像的fileSize属性。在其他支持Canvas的浏览器中,使用in this question on getting image data in JavaScript描述的技术来获取dataURL,然后进行数学运算(乘以3/4,因为base64的大小增加了4/3)。

修改

3)其他人给出的建议(特别是在Fabien Bernede的答案中有关的问题中详细说明)关于获取HTTP标头是非常精确和精确的。在某些情况下可能会违反跨域限制,但仍可能是最一致和最有效的方法。

答案 3 :(得分:1)

你不能在javascript(对不起甚至神奇的jQuery在这里无法帮助!)。您需要一个服务器端脚本来为您获取图像并计算您可以返回页面的大小。

注意 - downvoters要小心,OP不拥有google域名!

答案 4 :(得分:-3)

$ fileSize = strlen(file_get_contents($ imageSrcTag))//&lt; - php