diff --git a/file_entity.admin.inc b/file_entity.admin.inc index c005a1e..5c5c77e 100644 --- a/file_entity.admin.inc +++ b/file_entity.admin.inc @@ -788,8 +788,22 @@ function file_entity_file_type_form_validate($form, &$form_state) { $submitted_mimetypes = array_filter(array_map('trim', explode("\n", $form_state['values']['mimetypes']))); $invalid_mimetypes = array_diff($submitted_mimetypes, $valid_mimetypes); + $valid_wildcards = array(); foreach ($invalid_mimetypes as $mimetype) { -// form_set_error('mimetypes', t('The mimetype %mimetype is not a valid mimetype.', array('%mimetype' => $mimetype))); + $parts = explode('/', $mimetype); + if ($parts[1] == '*') { + foreach ($valid_mimetypes as $valid) { + if (fnmatch($mimetype, $valid)) { + $valid_wildcards[] = $mimetype; + break; + } + } + } + } + $invalid_mimetypes = array_diff($invalid_mimetypes, $valid_wildcards); + + foreach ($invalid_mimetypes as $mimetype) { + form_set_error('mimetypes', t('The mimetype %mimetype is not a valid mimetype.', array('%mimetype' => $mimetype))); } }