Как узнать размер файла в PHP
Коллеги всем привет.
В сегодняшней статье мы поговорим о том как узнать размер файла в PHP.
Рано или поздно в своих приложениях вы столкнетесь с такой задачей как узнать размер файла. Существует очень много примеров почему мы должны узнавать размер файлов, и один из примеров может быть то когда вы или пользователь начинает загружать изображения или какой-нибудь файл на ваш сервер, и перед тем как начать загрузку этого файла можно включить условия проверки по максимальному размеру загружаемого файла.
В PHP есть два варианта как посмотреть размер файла, и мы сегодня их рассмотрим.
В первом варианте мы будем использовать функцию filesize. Функция filesize принимает всего один обязательный параметр, это имя файл. Возвращает функция размер файла в байтах. В случаи ошибки возвращает FALSE и генерирует ошибку уровня E_WARNING.
php> filesize('it-inzhener.png');
В данном примере мы узнаем размер изображения it-inzhener.png, и в результате мы получили 105478 байтов.
Получать размер файла в байтах очень не удобно, и по этому можно сделать функцию, которая будет нам конвертировать байты в другие величины.
function getFilesize($filesize)
{
if ($filesize > 1024) {
$filesize = ($filesize / 1024);
if ($filesize > 1024) {
$filesize = ($filesize / 1024);
if ($filesize > 1024) {
$filesize = ($filesize / 1024);
$filesize = round($filesize, 1);
return $filesize . " GB";
} else {
$filesize = round($filesize, 1);
return $filesize . " MB";
}
} else {
$filesize = round($filesize, 1);
return $filesize . " KB";
}
} else {
$filesize = round($filesize, 1);
return $filesize . " bytes";
}
}
Функция принимает размер в байтах, и возвращает размер уже других величинах. Функция конвертирует байты в нужную величину, исходя из размера самого файла.
Следующим вариантом для получения размера файла можно воспользоваться специальным php классом который называется SplFileInfo. Для начала нам нужно создать объект этого класса и передать в его конструктор сам файл, потом нужно выполнить метод этого класса который называется getSize. Метод getSize возвращает размер файла тоже в байтах, а в случаи какой-нибудь ошибки вернет FALSE.
$splFile = new SplFileInfo('it-inzhener.png');
echo $splFile->getSize();
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.