*/ class LSformRule_mimetype extends LSformRule { // CLI parameters autocompleters protected static $cli_params_autocompleters = array( 'mimeType' => null, 'mimeTypeRegEx' => null, ); /** * Validate form element value * * @param mixed $value The value to validate * @param array $options Validation options: * - Type MIME : $options['params']['mimeType'] * - Type MIME (regex) : $options['params']['mimeTypeRegEx'] * @param LSformElement &$formElement The related LSformElement object * * @return boolean True if value is valid, False otherwise */ public static function validate($value, $options, &$formElement) { $file = LSsession :: getTmpFile($value); $real_mimetype = mime_content_type($file); $mimetypes = ensureIsArray(LSconfig :: get('params.mimeType', null, null, $options)); if ($mimetypes && !in_array($real_mimetype, $mimetypes)) throw new LSformRuleException(getFData(_('Invalid file type (%{type}).'), $real_mimetype)); $mimeTypeRegEx = LSconfig :: get('params.mimeTypeRegEx', null, 'string', $options); if (is_string($mimeTypeRegEx) && !preg_match($mimeTypeRegEx, $real_mimetype)) throw new LSformRuleException(getFData(_('Invalid file type (%{type}).'), $real_mimetype)); return true; } }