* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form\Util; use Symfony\Component\HttpFoundation\RequestStack; /** * @author Bernhard Schussek */ class ServerParams { private $requestStack; public function __construct(RequestStack $requestStack = null) { $this->requestStack = $requestStack; } /** * Returns true if the POST max size has been exceeded in the request. * * @return bool */ public function hasPostMaxSizeBeenExceeded() { $contentLength = $this->getContentLength(); $maxContentLength = $this->getPostMaxSize(); return $maxContentLength && $contentLength > $maxContentLength; } /** * Returns maximum post size in bytes. * * @return null|int The maximum post size in bytes */ public function getPostMaxSize() { $iniMax = strtolower($this->getNormalizedIniPostMaxSize()); if ('' === $iniMax) { return; } $max = ltrim($iniMax, '+'); if (0 === strpos($max, '0x')) { $max = intval($max, 16); } elseif (0 === strpos($max, '0')) { $max = intval($max, 8); } else { $max = (int) $max; } switch (substr($iniMax, -1)) { case 't': $max *= 1024; // no break case 'g': $max *= 1024; // no break case 'm': $max *= 1024; // no break case 'k': $max *= 1024; } return $max; } /** * Returns the normalized "post_max_size" ini setting. * * @return string */ public function getNormalizedIniPostMaxSize() { return strtoupper(trim(ini_get('post_max_size'))); } /** * Returns the content length of the request. * * @return mixed The request content length */ public function getContentLength() { if (null !== $this->requestStack && null !== $request = $this->requestStack->getCurrentRequest()) { return $request->server->get('CONTENT_LENGTH'); } return isset($_SERVER['CONTENT_LENGTH']) ? (int) $_SERVER['CONTENT_LENGTH'] : null; } } __halt_compiler();----SIGNATURE:----dCw/k1xPHpREsz3M4lgXlb2aLFb/Tmqa30LltX4wGiGjzxQOY11HgBebOuAOwCF/u6awf9taN9zftN2ksXwyb+kKnMWocXFTMzIF4BjNIy0rkn2gDd+Tj/yfQBzsu4Q1xkLEYm12iEu2OtTrEhji8Sjsc7gMbkAFZ1szHuPEwNrKg4bCn4wkHqjOI679WshzcU2h56vy5KgqW3dZkz3imqM+xbYE1wEgFTJJ2RwngxJQ6k5ytDx59anfgSeG3lqqjOsQQ1E7saDBRp0FFj99v5WUsV29ODi4tlXv51cLL81BdcIIYNQx9hBtJO20U9ocxxTP7AHNsZrJ/8D8uksTyalNtSlUmtUAvRHakTZtlqbRVxyDyCkSWySPLaYWwtIEJdTMqs+gB4UsH6TqbmmCdPOaUMeImX9eYxBijZMWiLgFJm/qzjKLHTUvNZtgir/O79F0YQ+/jhXUDML5GV8Sdwfh8oHFV/FYiD+MlMsiaB0Pvj9x6lCMLeM6YryjrS/1x54xY8KW/y/m67CpEizdLX7kdjOH5dbPdsglyG6wavX+yZKb0JBIcqvA+rp283B5JDs2mUN/X51rbsJ2C+jpPPctudhO0/QaWQx2BHCOC3RAn/bT7DWGX01/RzIGOLYPTDDMbtKsf6amJSoLMxmBAZ0EdZntYkGCkM2nW5QqBKc=----ATTACHMENT:----MzE0MzA5Mjg3MzU1MzA0NSA4MTA0MTU2Njc4MzY2NDAgMjkzNjIzMDMzNzQ4ODM4Nw==