Viewing file: ValidatePostSize.php (1.19 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Illuminate\Foundation\Http\Middleware;
use Closure; use Illuminate\Http\Exceptions\PostTooLargeException;
class ValidatePostSize { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Http\Exceptions\PostTooLargeException */ public function handle($request, Closure $next) { $max = $this->getPostMaxSize();
if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) { throw new PostTooLargeException; }
return $next($request); }
/** * Determine the server 'post_max_size' as bytes. * * @return int */ protected function getPostMaxSize() { if (is_numeric($postMaxSize = ini_get('post_max_size'))) { return (int) $postMaxSize; }
$metric = strtoupper(substr($postMaxSize, -1)); $postMaxSize = (int) $postMaxSize;
return match ($metric) { 'K' => $postMaxSize * 1024, 'M' => $postMaxSize * 1048576, 'G' => $postMaxSize * 1073741824, default => $postMaxSize, }; } }
|