如何从URL中获取图像文件的大小?

时间:2010-08-01 09:43:30

标签: php filesize

图片和脚本托管在同一个帐户(一个网站)上,但我们只知道图片的网址。

$image = "http://example.com/images/full-1091.jpg"

我们如何获得此文件的大小

的伪代码:

{ do something with $image and get $image_size }
echo $image_size;

我希望将$image_size格式化为人类可读的文件大小,例如“156,8 Kbytes”或“20,1 Mbytes”。

5 个答案:

答案 0 :(得分:26)

使用filesize这样的功能:

echo filesize($filename) . ' bytes';

您还可以使用此功能格式化单位大小:

function format_size($size) {
      $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
      if ($size == 0) { return('n/a'); } else {
      return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); }
}

答案 1 :(得分:3)

  

托管在同一帐户(一个网站)上的图片和脚本。

然后不要使用URL:使用直接文件路径和filesize()

答案 2 :(得分:3)

请注意:

缓存 filesize()函数的结果! 使用 clearstatcache()清除缓存...

来源:http://www.w3schools.com/php/func_filesystem_filesize.asp

答案 3 :(得分:0)

 echo filesize($_SERVER['DOCUMENT_ROOT']."/images/full-1091.jpg");

请注意,http://site.com/images/full-1091.jpg 不是文件

格式化输出(“156,8 Kbytes”或“20,1 Mbytes”)尝试帮助自己并使用搜索。这个问题已经有很多答案了。

答案 4 :(得分:-4)

<?php
  $contents=file_get_contents("http://site.com/images/full-1091.jpg");
   // var_dump($contents);
//  $fp =fopen("1.jpeg","w");
  file_put_contents("1.jpeg",$contents);
  $size= filesize("1.jpeg");
  echo $size."in Bytes";
  ?>

检查一下它是否适合您