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