*/ class LSformRule_filesize extends LSformRule { // CLI parameters autocompleters protected static $cli_params_autocompleters = array( 'minSize' => array('LScli', 'autocomplete_int'), 'maxSize' => array('LScli', 'autocomplete_int'), ); /** * Vérification de la valeur. * * @param string $values Valeur à vérifier * @param array $options Options de validation : * - Taille max (en octet) : $options['params']['maxSize'] * - Taille min (en octet) : $options['params']['minSize'] * @param object $formElement L'objet formElement attaché * * @return boolean true si la valeur est valide, false sinon */ public static function validate($value, $options, &$formElement) { // According to PHP doc, strlen() returns the number of bytes rather // than the number of characters in a string. // See: https://www.php.net/manual/en/function.strlen.php $size = strlen($value); $maxSize = LSconfig :: get('params.maxSize', null, 'int', $options); if (is_int($maxSize) && $size > $maxSize) throw new LSformRuleException(_('File is too big.')); $minSize = LSconfig :: get('params.minSize', null, 'int', $options); if (is_int($minSize) && $size < $minSize) throw new LSformRuleException(_('File is too light.')); return true; } }