Как убрать ограничение загрузки файлов по типам в WordPress

Наверное многие столкнулись с проблемой загрузки файлов через админ-консоль в WordPress. Я имею в виду ограничения по типам файлов. При загрузке некоторых файлов появляется сообщение:

Тип файла не подходит по соображениям безопасности. Попробуйте другой.

Далее указываются расширения файлов, которые допускаются по умолчанию (Данные за 07/01/2011):

jpg, jpeg, jpe, gif, png, bmp, tif, tiff, ico, asf, asx, wax, wmv, wmx, avi, divx, flv, mov, qt, mpeg, mpg, mpe, txt, c, cc, h, rtx, css, htm, html, mp3, m4a, mp4, m4v, ra, ram, wav, ogg, mid, midi, wma, rtf, js, pdf, doc, docx, pot, pps, ppt, pptx, wri, xla, xls, xlsx, xlt, xlw, mdb, mpp, swf, class, tar, zip, gz, gzip, exe, odt, odp, ods, odg, odc, odb, odf.

Если в списке отсутствует расширение файла, который вы хотите загрузить, то приступаем к следующим действиям:

Как определить новый допустимый mime type

Для этого надо добавить следующий код в файл functions.php вашей текущей темы:

[php]add_filter(‘upload_mimes’, ‘custom_upload_mimes’);
function custom_upload_mimes ( $existing_mimes=array() ) {
// Добавляет расширение ‘extension’ и его mime type ‘mime/type’
$existing_mimes[‘extension’] = ‘mime/type’;
// добавляйте столько сколько вам нужно
$existing_mimes[‘doc’] = ‘application/msword’;

return $existing_mimes;
}[/php]

Теперь разберём код.

add_filter(‘upload_mimes’, ‘custom_upload_mimes’); — фильтр, который вызывает функцию custom_upload_mimes

В функции есть $existing_mimes[‘extension’] = ‘mime/type’; — где вместо extension вы указывает расширение, которое хотите добавить. mime/type — у каждого расширения есть свой mime type. Вот его и надо здесь указать. Здесь вы найдёт [link2post id=»44″]список расширений и их mime type[/link2post].

Таких строк вы можете добавлять столько, сколько вам нужно добавить новых расширений.

Например:

[php]$existing_mimes[‘chm’] = ‘application/octet-stream’;

$existing_mimes[‘text’] = ‘text/plain’;

$existing_mimes[‘voc’] = ‘audio/voc’;[/php]

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

[php]unset( $existing_mimes[‘extension’] );[/php]

Где extension — расширение, которое вы запрещаете.

Также можно указать любое количество расширений. Например:

[php]unset( $existing_mimes[‘exe’] );

unset( $existing_mimes[‘java’] );

unset( $existing_mimes[‘sh’] );[/php]

Вот и всё. Еще раз даю ссылку на [link2post id=»44″]список расширений и их mime типов[/link2post].

Подписаться
Уведомить о
49 Comments
Популярные
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
49
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x