Чтобы ответить на ответ Джошендо , если вы работаете в Unix-подобной ОС (Linux, OSX, macOS и т. Д.), Вы можете немного обмануть, используя ls
:
$fileSize = trim(shell_exec("ls -nl " . escapeshellarg($fullPathToFile) . " | awk '{print $5}'"));
trim()
есть, чтобы удалить возврат каретки в конце. Остается строка, содержащая полный размер файла на диске, независимо от размера или состояния кэша статистики, без человеческого форматирования, такого как запятые.
Просто будьте осторожны, откуда поступают данные в $fullPathToFile
... при выполнении системных вызовов вы не хотите доверять предоставленным пользователем данным. escapeshellarg
, вероятно, защитит вас, но лучше, чем потом сожалеть.