Разрешить загрузку всех типов файлов

5 окт. 2012 г., 11:49:11
Просмотры: 25.7K
Голосов: 10

Я использую WordPress 3.4.2 для личного блога, то есть блога, в котором могу публиковать только я. WordPress не позволяет мне загружать определенные типы файлов (например, исходные файлы C#). Насколько я понимаю, существует белый список, который определяет, какие файлы можно загружать.

Есть ли плагин, который может расширить или, что еще лучше, отключить этот белый список?

Все остальные ответы предлагают мне редактировать тему, но я бы предпочел использовать плагин (чтобы не редактировать все мои темы).

Также я нашел этот плагин, но опять же, он требует от меня редактирования некоторых файлов на сервере (которые, вероятно, перезаписываются при обновлении плагина).

Есть ли какие-то другие варианты?

1
Комментарии

Откройте ваш сайт через FTP, создайте папку с названием "Uploads" или подобным и поместите туда ваши файлы. Затем сделайте ссылку на них. Вот и всё!

GoUkraineGo GoUkraineGo
7 авг. 2024 г. 12:13:26
Все ответы на вопрос 3
6
13

Вы можете создать плагин или добавить это в конфигурационный файл, но для версии 3.9.2 это сработало у меня.

define('ALLOW_UNFILTERED_UPLOADS', true);
18 сент. 2014 г. 20:12:41
Комментарии

Это основной способ сделать это. +1

InanisAtheos InanisAtheos
22 дек. 2014 г. 22:30:39

Подтверждено, что работает и в Wordpress 4.1!

Joel Purra Joel Purra
14 янв. 2015 г. 15:46:42

Это в wp-config.php. Я действительно не понимаю, почему это не установлено по умолчанию, хотя бы для администраторов.

Guntram Blohm Guntram Blohm
2 июн. 2016 г. 23:19:34

Однако система по-прежнему запрещает мне загружать, например, файлы ".exe" "по соображениям безопасности". (Может быть, это проблема моего плагина Real media library?) Пользователь с правами администратора. Явное разрешение MIME-типов через фильтр upload_mimes работает.

Fanky Fanky
10 нояб. 2020 г. 16:47:01

Какие могут быть последствия для безопасности? Оставляет ли отключение этой настройки мой сайт уязвимым для загрузки вредоносных скриптов и т.п.?

Abraham Brookes Abraham Brookes
22 дек. 2020 г. 04:17:04

@AbrahamBrookes - Уверен, что есть риски для безопасности. Всякий раз, когда вы разрешаете больше вещей, больше вещей может вам навредить. Я работаю со многими приватными сайтами за SSO, поэтому для меня это не такая проблема. Но для публичного сайта вы либо не должны разрешать загрузку через фронтенд, либо ограничивать загрузочный скрипт на фронтенде только тем, что вы явно разрешили. Эта настройка возвращает ваш сайт в "чистое" состояние - и учитывая требования C#, вам в любом случае нужно сделать это первым. У меня также есть скрипт для белого списка, но это уже другой вопрос.

STing STing
16 февр. 2021 г. 19:58:35
Показать остальные 1 комментариев
1

Фильтр 'user_has_cap' и установка 'unfiltered_upload' в значение 1.

Пример кода не тестировался:

/*
Plugin Name: Remove Uploads Filter
Plugin URI: http://wordpress.stackexchange.com/questions/67225/allow-all-file-types-for-upload
Description: Disables white-list filter for uploads
Version: 1.0
Author: WPSE - @toscho
*/

add_filter( 'user_has_cap', 'wpse_67225_unfiltered_upload' );

function wpse_67225_unfiltered_upload( $caps )
{
    $caps['unfiltered_upload'] = 1;
    return $caps;
}
5 окт. 2012 г. 12:00:16
Комментарии

Я попробовал это на WP 5.7.2, пытаясь загрузить JSON файлы, но, к сожалению, это не работает.

clayRay clayRay
24 июн. 2021 г. 22:26:00
5

К сожалению, ответ toscho не работает — по крайней мере, в WordPress 3.4 и выше.

Правильное решение следующее:

#
# Для этого смотрите: wp-includes/capabilities.php > map_meta_cap()
#
function wpse_6533_map_unrestricted_upload_filter($caps, $cap) {
  if ($cap == 'unfiltered_upload') {
    $caps = array();
    $caps[] = $cap;
  }

  return $caps;
}

add_filter('map_meta_cap', 'wpse_6533_map_unrestricted_upload_filter', 0, 2);
6 дек. 2012 г. 10:33:13
Комментарии

Привет, куда мне вставить этот код выше? Будет ли он работать, если я помещу его в functions.php?

leonardeveloper leonardeveloper
4 авг. 2016 г. 12:36:56

@LeonardDrapeza Да, вы можете поместить его в functions.php вашей темы. Однако это будет работать только пока ваша тема активна, насколько я знаю.

Sebastian Krysmanski Sebastian Krysmanski
4 авг. 2016 г. 12:39:29

Это тоже не работает.

Jim Maguire Jim Maguire
23 февр. 2017 г. 15:20:23

Тем не менее, мне запрещено загружать, например, файлы ".exe" "по соображениям безопасности". (Может быть, это проблема моего плагина Real media library?) Пользователь с правами администратора. Явное разрешение MIME-типов через фильтр upload_mimes работает.

Fanky Fanky
10 нояб. 2020 г. 16:47:56

Я пробовал это в WP 5.7.2, пытаясь загрузить JSON-файлы, и, к сожалению, это не работает.

clayRay clayRay
24 июн. 2021 г. 22:38:01