Spaces:
No application file
No application file
| namespace Mautic\CoreBundle\Helper; | |
| class FileHelper | |
| { | |
| public const BYTES_TO_MEGABYTES_RATIO = 1_048_576; | |
| public static function convertBytesToMegabytes($b): float | |
| { | |
| return round($b / self::BYTES_TO_MEGABYTES_RATIO, 2); | |
| } | |
| public static function convertMegabytesToBytes($mb) | |
| { | |
| return $mb * self::BYTES_TO_MEGABYTES_RATIO; | |
| } | |
| public static function getMaxUploadSizeInBytes(): int | |
| { | |
| $maxPostSize = self::convertPHPSizeToBytes(ini_get('post_max_size')); | |
| $maxUploadSize = self::convertPHPSizeToBytes(ini_get('upload_max_filesize')); | |
| $memoryLimit = self::convertPHPSizeToBytes(ini_get('memory_limit')); | |
| return min($maxPostSize, $maxUploadSize, $memoryLimit); | |
| } | |
| public static function getMaxUploadSizeInMegabytes(): float | |
| { | |
| $maxUploadSizeInBytes = self::getMaxUploadSizeInBytes(); | |
| return self::convertBytesToMegabytes($maxUploadSizeInBytes); | |
| } | |
| /** | |
| * @param string $sSize | |
| */ | |
| public static function convertPHPSizeToBytes($sSize): int | |
| { | |
| $sSize = trim($sSize); | |
| if (is_numeric($sSize)) { | |
| return (int) $sSize; | |
| } | |
| $sSuffix = substr($sSize, -1); | |
| $iValue = (int) substr($sSize, 0, -1); | |
| // missing breaks are important | |
| switch (strtoupper($sSuffix)) { | |
| case 'P': | |
| $iValue *= 1024; | |
| // no break | |
| case 'T': | |
| $iValue *= 1024; | |
| // no break | |
| case 'G': | |
| $iValue *= 1024; | |
| // no break | |
| case 'M': | |
| $iValue *= 1024; | |
| // no break | |
| case 'K': | |
| $iValue *= 1024; | |
| break; | |
| } | |
| return $iValue; | |
| } | |
| } | |