diff options
| author | Greg Roach <fisharebest@webtrees.net> | 2019-11-23 14:53:24 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@webtrees.net> | 2019-11-23 17:58:41 +0000 |
| commit | d501c45d339d4a2d06248f9197d7875a4df14e48 (patch) | |
| tree | 6354050630acc6b16124600a9a6597fcb9fb599c /app/Services/MediaFileService.php | |
| parent | b5f5afdbfd53e7e50eb7aa9959fdbdfed101a6e5 (diff) | |
| download | webtrees-d501c45d339d4a2d06248f9197d7875a4df14e48.tar.gz webtrees-d501c45d339d4a2d06248f9197d7875a4df14e48.tar.bz2 webtrees-d501c45d339d4a2d06248f9197d7875a4df14e48.zip | |
Remove dependency on symfony httpfoundation/kernel
Diffstat (limited to 'app/Services/MediaFileService.php')
| -rw-r--r-- | app/Services/MediaFileService.php | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/app/Services/MediaFileService.php b/app/Services/MediaFileService.php index 17ab305b74..162ec42f34 100644 --- a/app/Services/MediaFileService.php +++ b/app/Services/MediaFileService.php @@ -31,7 +31,6 @@ use League\Flysystem\FilesystemInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\UploadedFileInterface; use RuntimeException; -use Symfony\Component\HttpFoundation\File\UploadedFile; use function array_combine; use function array_diff; @@ -39,7 +38,11 @@ use function array_filter; use function array_map; use function assert; use function dirname; +use function ini_get; use function intdiv; +use function intval; +use function ltrim; +use function min; use function pathinfo; use function preg_match; use function sha1; @@ -47,9 +50,11 @@ use function sort; use function str_replace; use function strpos; use function strtolower; +use function substr; use function trim; use const PATHINFO_EXTENSION; +use const PHP_INT_MAX; use const UPLOAD_ERR_OK; /** @@ -72,13 +77,45 @@ class MediaFileService */ public function maxUploadFilesize(): string { - $bytes = UploadedFile::getMaxFilesize(); + $sizePostMax = $this->parseIniFileSize(ini_get('post_max_size')); + $sizeUploadMax = $this->parseIniFileSize(ini_get('upload_max_filesize')); + + $bytes = min($sizePostMax, $sizeUploadMax); $kb = intdiv($bytes + 1023, 1024); return I18N::translate('%s KB', I18N::number($kb)); } /** + * Returns the given size from an ini value in bytes. + * + * @param $size + * + * @return int + */ + private function parseIniFileSize($size): int + { + $number = (int) $size; + + switch (substr($size, -1)) { + case 't': + case 'T': + return $number * 1024 ** 4; + case 'g': + case 'G': + return $number * 1024 ** 3; + case 'm': + case 'M': + return $number * 1024 ** 2; + case 'k': + case 'K': + return $number * 1024; + default: + return $number; + } + } + + /** * A list of key/value options for media types. * * @param string $current |
