Разрешаем загрузку rar и zip в WordPress
Добрый день уважаемые читатели, сегодня мы с вами продолжим изучение самого популярного в мире движка, а именно CMS WordPress. Сегодня расскажу вам решение, как можно загружать файлы любого формата на ваш сайт и обходить ошибку: Извините, тип этого файла не разрешен из соображений безопасности. В итоге у вас пропала возможность загружать на сайт файлы формата:exe, rar, zip и другие. Согласитесь, что это не совсем удобно, когда вы хотите выложить для ваших посетителей прямые ссылки, чтобы они не рыскали по всяким облачным хранилищам и файло-помойкам.
Решаем ошибку: Извините, тип этого файла не разрешен
Вот как выглядит сама ошибка, при попытке загрузить файл с форматом rar
Обнаружил я этого, когда выкладывал пользователям библиотеку для скайпа, а именно я хотел сделать прямую ссылку, где можно было скачать msvcp140.dll. Немного почитав выяснилось, что начиная с WordPress 4, у движка поднялись требования к политике безопасности, наверняка на это повлиял массовый взлом сайтов на этом движке и любовь хакеров, но на мой взгляд это бред по двум причинам:
- Любой хакер легко обойдет этот запрет
- Усложнили жизнь обычным пользователям, заставляя их редактировать код или устанавливать плагины, которые мало того, что добавляют нагрузки на сайт, так еще и подвержены дополнительным атакам хакеров, в итоге хотел как лучше, а вышло как всегда.
Плюс не стоит забывать, что любой скачанный файл проверяется сразу же браузером по своей базе сигнатур и любым антивирусом, если у вас его нет, то его проверит защитник Windows, который идет в комплекте с Windows 10 или Windows 8.
Обойти ограничение: Извините, тип этого файла не разрешен из соображений безопасности, можно тремя методами это путем установки специального плагина или вставки кода, но есть еще один полезный лайвхах, о нем ниже.
Через плагин disable-real-mime-check
Самый простой способ, раз и навсегда решить проблему с загрузкой rar или zip архивов, это установка плагина WordPress. Как это правильно делается, читайте по ссылке слева, я же сразу приведу сам плагин, называется он Disable Real MIME Check. Он абсолютно бесплатный. Вы его активируете и все. В комментариях к плагину вы увидите, что он восстанавливает возможность загрузки файлов в WordPress 4.7.1 b 4.7.2. Пожалуйста, удалите этот плагин после обновления до WordPress 4.7.3. В Последней версии 4.7.3, загрузка так же отключена, поэтому плагин вам понадобится. Я как и большинство веб-мастеров прости лишнего плагина, так как они создают излишнюю нагрузку на хостинг и уменьшают безопасность движка.
Через код
Решить данную проблему с загрузкой различных файлов в WordPress можно и с помощью кода. Вам нужно в админке или через ftp сервер, отредактировать файл functions.php. Я для примера отредактирую его через админку, для этого заходим во вкладку "Внешний вид" > редактор
Находим там файл functions.php и вставляем вот такой код:
function additional_mime_types( $mimes ) {
$mimes[‘сюда вставляем форматы, через запятую’] = mime/type';
return $mimes;
}
add_filter( ‘upload_mimes’, ‘additional_mime_types’ );
Его вставляем в самом конце файла functions.php перед «?>». mime/type – тип файла (берется из таблицы mime)
Например, чтобы разрешить zip и rar, вам нужно ввести вот такой код.
function additional_mime_types( $mimes ) {
$mimes[‘rar’] = 'application/x-rar-compressed';
return $mimes;
}
add_filter( ‘upload_mimes’, ‘additional_mime_types’ );
Через ftp сервер
Для меня данный метод самый быстрый и безопасный, его суть заключается в том, что вы заходите на ваш ftp сервер, создаете там каталог, например soft и складываете в него любые файлы, после чего вы кликаете по нужному и из контекстного меню выбираете
У вас ссылка попадает в буфер обмена Windows. Вставьте ее в любой браузер и вот ваша ссылка на файл, добавьте до /wp-content адрес вашего сайта и вы получите прямую ссылку на файл с вашего сайта. Как видите, вообще не нужно входить в админку WordPress и устанавливать плагины, новы сами должны выбрать для себя нужный вам метод.
Не помогло. Точнее сказать дома в локалке на тестовом сервере (на Денвере) все сработало, а на сайте расположенном на хостинге(CentOS 6.8) не работает.
Не работает.
Мульти-сайт WP 5.2.3, шаблон Astra.
Код вставлялся в functions.php шаблона. Первая попытка из админки сайта — не результативна, редактор тем вообще ничего не хочет редактировать под предлогом «невозможно-что-то-там-проверить-гуляйте-на FTP-или-в-файл-менеджер-хостинга» — как-то так.
Зашёл с хоста. Названный выще файл functions.php в каталоге активного шаблона (темы) вообще не содержит в конце «?>». Дописал его сам. Всё равно не работает. Учитывая то, что в статье упоминаются версии WP ниже 4.7., возник вопрос относительно актуальности метода для текущих версий WP…такое впечатление, что метод — времён несколько прежних. Года эдак 10-го…
Я в 2016 такое делал, могло, что-то и поменяться