Як дізнатися розмір файлу в 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();
Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.