mirror of
https://github.com/notf0und/SGS
synced 2026-07-17 18:21:06 +00:00
27 lines
604 B
PHP
27 lines
604 B
PHP
<?php
|
|
|
|
namespace App\Helpers;
|
|
|
|
class FileSize
|
|
{
|
|
private const UNITS = ['', 'K', 'M', 'G', 'T'];
|
|
private const THRESHOLD = 1024;
|
|
|
|
/**
|
|
* Format bytes into human-readable file size.
|
|
*/
|
|
public static function format(int $bytes): string
|
|
{
|
|
if ($bytes === 0) {
|
|
return '0';
|
|
}
|
|
|
|
$unitIndex = (int) floor(log($bytes, self::THRESHOLD));
|
|
$unitIndex = min($unitIndex, count(self::UNITS) - 1);
|
|
|
|
$size = $bytes / pow(self::THRESHOLD, $unitIndex);
|
|
|
|
return number_format($size, 2) . self::UNITS[$unitIndex];
|
|
}
|
|
}
|