Wp add mime types что это
Позволяет добавить/удалить типы файлов для загрузки на сайт (MIME-типы файлов разрешенных к загрузке).
MIME-типы файлов
«Файл не удалось загрузить из-за ошибки. Тип файла не подходит по соображениям безопасности».
Чтобы обойти это предупреждение, нужно добавить в белый список MIME-тип загружаемого файла.
Список предустановленных MIME-типов
Использование
Данные Mime типов в виде массива. См. что возвращает функция wp_get_mime_types().
Примеры
#1 Разрешаем загрузку CSV файлов
#2 Разрешим админам загружать любые файлы без проверок
Список изменений
Где вызывается хук
Где используется хук в ядре WordPress
Спасибо! Добавил в описание упоминание об этой константе.
Не очень понятно куда этот код вставлять
Файл темы functions.php родимый.
В данный момент существует крайне неприятный баг, в результате которого добавить кастомный тип файла можно только используя комбо из константы ‘ALLOW_UNFILTERED_UPLOADS’ и фильтра ‘upload_mimes’. Подробнее тут. Надеюсь, поможет кому-то сэкономить пару часов времени, т.к. баг не слишком спешат фиксить.
Столкнулся с проблемой на WP 5.8.2 + Classic Editor акт. версии, хотя по ссылке с github обсуждение вообще про Gutenberg.
P.S. в статье есть неточность:
Если указать константу ALLOW_UNFILTERED_UPLOADS в плагине или файле wp-config.php, то администраторы (пользователи с правом unfiltered_upload) смогут загружать файлы любых типов
На обычном сайте (не мультисайте) загружать любой файл сможет любая роль, если мой английский меня не подводит. Пруф взят отсюда.
Разрешаем/запрещаем загрузку типов файлов
Иногда такая защита мешает, и несмотря на потенциальную опасность все же нужно иметь возможность загружать файлы нужных нам типов.
Ниже рассмотрим, как добавить тип загружаемого файла в белый список.
Процесс загрузки файла и проверка его типа
Нажали «загрузить», выбрали файл загрузили, WP отправил запрос на файл wp-admin/async-upload.php.
Далее по следующей цепочке до проверки миме типа:
Разрешаем/запрещаем типы файлов для загрузки
Для управления белым списком расширений файлов есть два хука:
По аналогии можно разрешать или запрещать любые другие типы файлов. См. Список MIME типов.
Как загружать SVG файлы
Тип SVG файла может меняться в зависимости от файла, поэтому с ним не все так просто. Подробнее смотрите в отдельной статье.
Там же можно увидеть какие могут нестандартные ситуации могут возникнуть при разрешении загрузки запрещенных типов файлов и как их решать.
Загрузка картинок с неправильным расширением
В WP предусмотрен механизм исправления расширения файла, когда оно указано неправильно. Например, мы загружаем картинку img.png реальный формат которой JPG. В этом случае проверка на соответствие реального MIME типа файла и его расширения не проходит и WP, на основе списка подобных соответствий, пытается установить правильное расширение и пройти проверку снова (см: wp_check_filetype_and_ext()). Если проверка проходит, то название файла изменяется на правильное.
Описанный выше механизм работает давно и многие о нём даже не догадываются. Однако его нужно учитывать, когда мы добавляем новые форматы изображений для загрузки.
Сделать это можно с помощью фильтра getimagesize_mimes_to_exts, подробнее про то как все это работает, читайте в описании фильтра.
Включение права unfiltered_upload
Право unfiltered_upload позволяет пользователям (ролям) загружать любые файлы, без проверки их типа.
WordPress.org
WP Add Mime Types
Description
The plugin additionally allows the mime types and file extensions to WordPress. In other words, your WordPress site can upload various file extensions.
Screenshots
Installation
Please install this plugin and activate it.
If you use a language except English, please update the translation data in the updates of Dashboard.
If the multisite is enabled, please check the setting menu in the network administrator.
Usage
First of all, please check the “Media Type Settings” in the “Settings”.
You can see the list of allowed mime types and file extensions by WordPress.
When you add the mime type or file extension, the data will be added to last item in this list at the red color.
About the mime type list, please see the list of mime types in the information of the Internet.
Ex. http://www.freeformatter.com/mime-types-list.html
The user who have the manage_options permission can only add the setting.
If the multisite is enabled, the multisite network administrator can add/change/delete the mime type value in the multisite network setting menu. And the multisite network administrator or the site administrator can only see the past value (cannot change) before the site was migrated to the multisite.
How to check the uploaded file type from Media.
WordPress recognizes the file mime type by finfo_file function (wp-includes/functions.php). However, sometimes, the standard MIME type of a file and the MIME type of a WordPress-recognized file are different. By enabling both this option (in setting menu) and the “Enable the attempt to determine the real file type of a file by WordPress core.”, the file type is displayed if it is from Media. PLEASE keep in mind that a file uploads are stopped while they are being processed if the both of two options are enabled. Therefore, be sure to disable this debugging option after debugging.
Cannot work
If the added mime type does not work, please deactivate other mime type plugins or the setting of other mime type plugins.
For example, if you install Media Library Assistant plugin, please turn off “Enable Upload MIME Type Support” in the Upload tag in this plugin setting.
Can the plugin support the multi extensions?
Yes. The function was supported by Version 2.4.0.
WordPress sanitizes the filename in case of 2 or more extensions.
ex. XXX.YYY.ZZZ –> XXX_.YYY.ZZZ.
The plugin fixes the sanitized extension when a file is uploaded in the media in case of allowed extensions.
ex. XXX.YYY.ZZZ — sanitized –> XXX_.YYY.ZZZ — fixed the plugin –> XXX.YYY.ZZZ
In detail, please see sanitize_file_name function in “wp-includes/formatting.php”.
Can I comment out in the setting value?
Yes. You can comment out above version 2.3.0.
Can the plugin avoid the security check for a file content by WordPress core?
How do the plugin behave when it is installed and activated on the multisite network administration dashboard?
The setting in the multisite network administration dashboard is taken precedence. The setting in each site administration dashboard is displayed, but the values aren’t applied.
How do the plugin behave when it is deactivated/uninstalled on the multisite network administration dashboard?
The setting values in each site administration dashboard in case of activating the plugin in each site is applied.
Don’t the setting values in the multisite network administration dashboard and the setting values in each site administration dashboard influence each other?
Yes, each setting values are saved as the other setting items.
Is it possible to restrict the extensions?
WordPress.org
Русский
WP Add Mime Types
Описание
The plugin additionally allows the mime types and file extensions to WordPress. In other words, your WordPress site can upload various file extensions.
Скриншоты
Установка
Please install this plugin and activate it.
If you use a language except English, please update the translation data in the updates of Dashboard.
If the multisite is enabled, please check the setting menu in the network administrator.
Применение
First of all, please check the «Media Type Settings» in the «Settings».
You can see the list of allowed mime types and file extensions by WordPress.
When you add the mime type or file extension, the data will be added to last item in this list at the red color.
About the mime type list, please see the list of mime types in the information of the Internet.
Ex. http://www.freeformatter.com/mime-types-list.html
The user who have the manage_options permission can only add the setting.
If the multisite is enabled, the multisite network administrator can add/change/delete the mime type value in the multisite network setting menu. And the multisite network administrator or the site administrator can only see the past value (cannot change) before the site was migrated to the multisite.
Часто задаваемые вопросы
How to check the uploaded file type from Media.
WordPress recognizes the file mime type by finfo_file function (wp-includes/functions.php). However, sometimes, the standard MIME type of a file and the MIME type of a WordPress-recognized file are different. By enabling both this option (in setting menu) and the «Enable the attempt to determine the real file type of a file by WordPress core.», the file type is displayed if it is from Media. PLEASE keep in mind that a file uploads are stopped while they are being processed if the both of two options are enabled. Therefore, be sure to disable this debugging option after debugging.
Cannot work
If the added mime type does not work, please deactivate other mime type plugins or the setting of other mime type plugins.
For example, if you install Media Library Assistant plugin, please turn off «Enable Upload MIME Type Support» in the Upload tag in this plugin setting.
Can the plugin support the multi extensions?
Yes. The function was supported by Version 2.4.0.
WordPress sanitizes the filename in case of 2 or more extensions.
ex. XXX.YYY.ZZZ —> XXX_.YYY.ZZZ.
The plugin fixes the sanitized extension when a file is uploaded in the media in case of allowed extensions.
ex. XXX.YYY.ZZZ — sanitized —> XXX_.YYY.ZZZ — fixed the plugin —> XXX.YYY.ZZZ
In detail, please see sanitize_file_name function in «wp-includes/formatting.php».
Can I comment out in the setting value?
Yes. You can comment out above version 2.3.0.
Can the plugin avoid the security check for a file content by WordPress core?
How do the plugin behave when it is installed and activated on the multisite network administration dashboard?
The setting in the multisite network administration dashboard is taken precedence. The setting in each site administration dashboard is displayed, but the values aren’t applied.
How do the plugin behave when it is deactivated/uninstalled on the multisite network administration dashboard?
The setting values in each site administration dashboard in case of activating the plugin in each site is applied.
Don’t the setting values in the multisite network administration dashboard and the setting values in each site administration dashboard influence each other?
Yes, each setting values are saved as the other setting items.
Is it possible to restrict the extensions?
Как исправить ошибку ‘Извините, этот тип файла недопустим по соображениям безопасности’ в WordPress
Главное меню » Блог-платформа wordpress » Как исправить ошибку ‘Извините, этот тип файла недопустим по соображениям безопасности’ в WordPress
Возможно, вы создаете веб-сайт, который позволяет пользователям загружать файлы, или, возможно, вы хотите добавить загружаемый файл в свою почтовую форму.
Однако вскоре вы обнаружите, что WordPress на самом деле не нравится, когда вы загружаете файлы определенных типов. Если вы попытаетесь загрузить файл, который не нравится WordPress, вы получите сообщение об ошибке «Извините, этот тип файла недопустим по соображениям безопасности».
К счастью, есть легкое решение этой проблемы, и мы будем шаг за шагом рассказывать вам о ней.
Что означает «Извините, этот тип файла недопустим по соображениям безопасности»?
Прежде всего, это распространенная ошибка для большинства блогеров и пользователей WordPress. Так что не пугайтесь и не паникуйте. Проблема также может быть легко решена.
В этой ошибке виновата собственная система WordPress. Несмотря на то, что WordPress является системой управления контентом, она все еще имеет очень строгую систему фильтрации, позволяющую принимать в систему только несколько типов файлов.
Что вызывает эту ошибку?
Это полный список типов файлов, разрешенных в WordPress по умолчанию.
Удивительно, что WordPress по-прежнему не поддерживает популярные и распространенные типы файлов, такие как Illustrator, по умолчанию. И это только один из десятков типов файлов, которые WordPress до сих пор не поддерживает.
Так что да, на этот раз вы можете обвинить WordPress в том, что он провел вас через эту запутанную ошибку. Но вы можете исправить эту проблему вручную, чтобы загрузить любой тип файла, который вы хотите.
Как исправить ошибку
Существует два простых способа исправить ошибку «Извините, этот тип файла недопустим по соображениям безопасности». Один метод требует использования плагина, а другой требует редактирования основного файла WordPress.
Прежде чем продолжить, мы настоятельно рекомендуем сделать резервную копию вашего сайта. Если у вас еще нет системы резервного копирования, вы можете настроить ее с помощью бесплатного плагина.
Метод 1: Используйте плагин Mime Types
Мы используем плагин WP Add Mime Types для этой статьи, так как он был обновлен для поддержки последних версий WordPress. Не стесняйтесь попробовать и использовать другой плагин, если хотите.
Шаг 1: Установка плагина WP Add Mime Types
Чтобы установить плагин, войдите в свою панель управления WordPress и перейдите в раздел Плагины >> Добавить новый.
Найдите плагин WP Add Mime Types и нажмите кнопку «Установить», а затем «Активировать», чтобы включить плагин.
Шаг 2: Настройка плагина
После установки на странице настроек появится новая страница, которая называется Mime Type Settings. На этой странице вы можете добавить определенные типы файлов, чтобы добавить их в систему WordPress.
Затем нажмите кнопку Сохранить, чтобы сохранить изменения. Как только тип файла будет включен, он будет выделен красным цветом в списке.
Способ 2: Отредактировать файл wp-config
wp-config.php – это основной файл, используемый WordPress, который обрабатывает многие функции WordPress. Вы можете отредактировать этот файл, чтобы отключить систему, которая предотвращает загрузку файлов определенных типов. После этого вы сможете загружать файлы любого типа.
Шаг 1: Доступ к вашему серверу
Вы можете редактировать файл wp-config, используя клиентское приложение FTP или войдя в свой сервер CPanel и используя Диспетчер файлов.
Перейдите в общую папку, где расположен ваш веб-сайт WordPress, и где находятся все основные файлы WordPress.
Шаг 2: Отредактируйте wp-config.php
Как только вы откроете файл, просто найдите строку /* That’s all, stop editing! Happy blogging. */.
Затем вставьте следующую строку кода прямо над ней.
define (‘ALLOW_UNFILTERED_UPLOADS’, true);
Все еще получаете ту же ошибку?
Вышеуказанные методы должны помочь вам загрузить практически любой тип файла, который вы хотите в WordPress. Однако, если вы все еще получаете ту же ошибку, вы должны попытаться связаться с вашим хостинг-провайдером и обратиться за помощью.
Некоторые веб-узлы запрещают загрузку определенных типов файлов по соображениям безопасности. Если вы продолжаете получать сообщение об ошибке и вам крайне необходимо загрузить файл в WordPress, обратитесь в службу поддержки хостинг-провайдера и посмотрите, есть ли у них фильтры, которые не позволяют вам загружать какие-либо файлы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.