Как в wordpress разрешить mime type .MAX?
Добрый день. Как в WP разрешить загрузку файлов .max
Сделал так не помогает
add_filter( 'upload_mimes', 'upload_allow_types' ); function upload_allow_types( $mimes ) { $mimes['dwg'] = 'image/vnd.dwg'; $mimes['fbx'] = 'application/octet-stream'; $mimes['max'] = 'application/octet-stream'; $mimes['zip'] = 'application/zip'; return $mimes; } |
add_filter( 'upload_mimes', 'upload_allow_types' ); function upload_allow_types( $mimes ) { $mimes['dwg'] = 'image/vnd.dwg'; $mimes['fbx'] = 'application/octet-stream'; $mimes['max'] = 'application/octet-stream'; $mimes['zip'] = 'application/zip'; return $mimes; }
Дополнительно:
Пробовал дополнительно в wp-includes/functions.php промисать также в mime, не помогло
'max' => 'application/octet-stream', |
'max' => 'application/octet-stream',
Ответы:
Не смог сам найти решение.
Удалось решить при помощи плагина
https://ru.wordpress.org/plugins/wp-add-mime-types/ |
https://ru.wordpress.org/plugins/wp-add-mime-types/
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Одного фильтра
upload_mimesдля новых версий WordPress часто недостаточно. WordPress проверяет не только расширение, но и результат определения типа файла черезwp_check_filetype_and_ext(). Для редких форматов вроде.maxсервер может вернуть пустой или неожиданный MIME, и загрузка будет заблокирована.Добавьте разрешение MIME и дополнительную правку проверки типа файла. Код лучше положить в небольшой mu-plugin или в
functions.phpдочерней темы, но не в core-файлы WordPress.add_filter('upload_mimes', function ($mimes) { $mimes['max'] = 'application/octet-stream'; return $mimes; }); add_filter('wp_check_filetype_and_ext', function ($data, $file, $filename, $mimes) { $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); if ($ext !== 'max') { return $data; } return [ 'ext' => 'max', 'type' => 'application/octet-stream', 'proper_filename' => $data['proper_filename'] ?? false, ]; }, 10, 4);
Если файл загружается только администраторами, дополнительно можно разрешить неотфильтрованные загрузки для админов:
add_filter('user_has_cap', function ($caps, $cap, $args) { if (! empty($args[0]) && $args[0] === 'unfiltered_upload' && current_user_can('manage_options')) { $caps['unfiltered_upload'] = true; } return $caps; }, 10, 3);
Проверьте ещё три момента:
.max, без двойного расширения вроде.max.zip;upload_max_filesizeиpost_max_size;wp-includes/functions.php, потому что обновление WordPress перезатрёт изменения.Разрешение
application/octet-streamширокое, поэтому не открывайте загрузку таких файлов всем пользователям. Для публичных форм загрузки лучше делать отдельную строгую проверку расширения, размера и роли пользователя.