public static function validateFileSize(FileUpload $control, $limit) { $maxUploadSize = min(self::convertToBytes($limit), self::convertToBytes(ini_get("upload_max_filesize"))); $file = $control->value; if (!$file instanceof HttpUploadedFile) { throw new InvalidStateException("File cannot be uploaded!"); } elseif ($file->isOk()) { if ($file->getSize() > $maxUploadSize) { return FALSE; } return TRUE; } else { switch ($file->error) { case UPLOAD_ERR_INI_SIZE: $errMsg = 'Velikost přílohy může být nanejvýš ' . TemplateHelpers::bytes($maxFileSize) . '.'; break; case UPLOAD_ERR_NO_FILE: $errMsg = 'Nevybrali ste žiadny súbor.'; break; /* tieto su hlavne na debug..userovi nic nepovedia */ /* tieto su hlavne na debug..userovi nic nepovedia */ case UPLOAD_ERR_FORM_SIZE: $errMsg = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; break; case UPLOAD_ERR_PARTIAL: $errMsg = 'The uploaded file was only partially uploaded'; break; case UPLOAD_ERR_NO_FILE: $errMsg = 'No file was uploaded'; break; case UPLOAD_ERR_NO_TMP_DIR: $errMsg = 'Missing a temporary folder'; break; case UPLOAD_ERR_CANT_WRITE: $errMsg = 'Failed to write file to disk'; break; case UPLOAD_ERR_EXTENSION: $errMsg = 'File upload stopped by extension'; break; default: $errMsg = 'Přílohu se nepodařilo nahrát.'; break; } $control->addError($errMsg); return FALSE; } }
/** * @deprecated */ public static function bytes($bytes) { trigger_error(__METHOD__ . '() is deprecated; use TemplateHelpers::bytes() instead.', E_USER_WARNING); return TemplateHelpers::bytes($bytes); }
<h1>Nette\Templates\TemplateHelpers test</h1> <?php require_once '../../Nette/loader.php'; /*use Nette\Debug;*/ /*use Nette\Templates\TemplateHelpers;*/ Debug::enable(); // TemplateHelpers::bytes echo "TemplateHelpers::bytes(0.1)\n"; Debug::dump(TemplateHelpers::bytes(0.1)); echo "TemplateHelpers::bytes(-1024 * 1024 * 1050)\n"; Debug::dump(TemplateHelpers::bytes(-1024 * 1024 * 1050)); echo "TemplateHelpers::bytes(1e19)\n"; Debug::dump(TemplateHelpers::bytes(1.0E+19));