Как я могу размер файла изображения из URL? - PullRequest
7 голосов
/ 01 августа 2010

Изображения и сценарии размещаются в одной учетной записи (на одном сайте), но мы знаем только URL-адрес изображения.

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

Как мы можем получить размер этогоfile?

Псевдокод:

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

Я бы предпочел, чтобы $image_size форматировался в удобочитаемых форматах файлов, таких как «156,8 Кбайт» или «20,1 Мбайт»».

Ответы [ 5 ]

26 голосов
/ 01 августа 2010

Используйте функцию 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]); }
}
3 голосов
/ 29 января 2014

Обратите внимание:

Результат функции filesize () кэшируется! Используйте clearstatcache () , чтобы очистить кеш ...

источник: http://www.w3schools.com/php/func_filesystem_filesize.asp

3 голосов
/ 01 августа 2010

Изображения и сценарии, размещенные в одной учетной записи (на одном сайте).

Тогда не используйте URL: используйте прямой путь к файлу и filesize().

0 голосов
/ 01 августа 2010
<?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";
  ?>

Отметьте, что это может работать на вас

0 голосов
/ 01 августа 2010
 echo filesize($_SERVER['DOCUMENT_ROOT']."/images/full-1091.jpg");

обратите внимание, что http://site.com/images/full-1091.jpg - это не файл

, как для форматированного вывода («156,8 Кбайт» или «20,1 Мбайт»).себя и пользуйся поиском.На этот вопрос уже есть тонна ответов.

...