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; } }