upload_mimes хук-фільтрWP 2.0.0

Дозволяє додати/видалити типи файлів для завантаження на сайт (MIME-типи файлів, дозволених до завантаження).

MIME-типи файлів

При завантаженні файлів .rarта .swfінших видається повідомлення:

«Файл не вдалося завантажити через помилку. Тип файлу не підходить з міркувань безпеки».

Щоб обійти це попередження, потрібно додати в білий список MIME-тип файлу, що завантажується.

Список встановлених MIME-типів

[jpg | jpeg | jpe] => image/jpeg
[gif] => image/gif
[png] => image/png
[bmp] => image/bmp
[tiff|tif] => image/tiff
[ico] => image/x-icon
[asf|asx] => video/x-ms-asf
[wmv] => video/x-ms-wmv
[wmx] => video/x-ms-wmx
[wm] => video/x-ms-wm
[avi] => video/avi
[divx] => video/divx
[flv] => video/x-flv
[mov|qt] => video/quicktime
[mpeg|mpg|mpe] => video/mpeg
[mp4|m4v] => video/mp4
[ogv] => video/ogg
[webm] => video/webm
[mkv] => video/x-matroska
[3gp|3gpp] => video/3gpp
[3g2|3gp2] => video/3gpp2
[txt|asc|c|cc|h|srt] => text/plain
[csv] => text/csv
[tsv] => text/tab-separated-values
[ics] => text/calendar
[rtx] => text/richtext
[css] => text/css
[htm|html] => text/html
[vtt] => text/vtt
[dfxp] => application/ttaf+xml
[mp3|m4a|m4b] => audio/mpeg
[ra|ram] => audio/x-realaudio
[wav] => audio/wav
[ogg|oga] => audio/ogg
[mid|midi] => audio/midi
[wma] => audio/x-ms-wma
[wax] => audio/x-ms-wax
[mka] => audio/x-matroska
[rtf] => application/rtf
[js] => application/javascript
[pdf] => application/pdf
[class] => application/java
[tar] => application/x-tar
[zip] => application/zip
[gz|gzip] => application/x-gzip
[rar] => application/rar
[7z] => application/x-7z-compressed
[psd] => application/octet-stream
[xcf] => application/octet-stream
[doc] => application/msword
[pot|pps|ppt] => application/vnd.ms-powerpoint
[wri] => application/vnd.ms-write
[xla|xls|xlt|xlw] => application/vnd.ms-excel
[mdb] => application/vnd.ms-access
[mpp] => application/vnd.ms-project
[docx] => application/vnd.openxmlformats-officedocument.wordprocessingml.document
[docm] => application/vnd.ms-word.document.macroEnabled.12
[dotx] => application/vnd.openxmlformats-officedocument.wordprocessingml.template
[dotm] => application/vnd.ms-word.template.macroEnabled.12
[xlsx] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
[xlsm] => application/vnd.ms-excel.sheet.macroEnabled.12
[xlsb] => application/vnd.ms-excel.sheet.binary.macroEnabled.12
[xltx] => application/vnd.openxmlformats-officedocument.spreadsheetml.template
[xltm] => application/vnd.ms-excel.template.macroEnabled.12
[xlam] => application/vnd.ms-excel.addin.macroEnabled.12
[pptx] => application/vnd.openxmlformats-officedocument.presentationml.presentation
[pptm] => application/vnd.ms-powerpoint.presentation.macroEnabled.12
[ppsx] => application/vnd.openxmlformats-officedocument.presentationml.slideshow
[ppsm] => application/vnd.ms-powerpoint.slideshow.macroEnabled.12
[potx] => application/vnd.openxmlformats-officedocument.presentationml.template
[potm] => application/vnd.ms-powerpoint.template.macroEnabled.12
[ppam] => application/vnd.ms-powerpoint.addin.macroEnabled.12
[sldx] => application/vnd.openxmlformats-officedocument.presentationml.slide
[sldm] => application/vnd.ms-powerpoint.slide.macroEnabled.12
[onetoc|onetoc2|onetmp|onepkg] => application/onenote
[oxps] => application/oxps
[xps] => application/vnd.ms-xpsdocument
[odt] => application/vnd.oasis.opendocument.text
[odp] => application/vnd.oasis.opendocument.presentation
[ods] => application/vnd.oasis.opendocument.spreadsheet
[odg] => application/vnd.oasis.opendocument.graphics
[odc] => application/vnd.oasis.opendocument.chart
[odb] => application/vnd.oasis.opendocument.database
[odf] => application/vnd.oasis.opendocument.formula
[wp|wpd] => application/wordperfect
[key] => application/vnd.apple.keynote
[numbers] => application/vnd.apple.numbers
[pages] => application/vnd.apple.pages

Використання

add_filter( 'upload_mimes', 'wp_kama_upload_mimes_filter', 10, 2);

/**
 * Function for `upload_mimes` filter-hook.
 *
 * @param array $t Mime types keyed з file extension regex, які відповідають those types.
 * @param int|WP_User|null $user User ID, User object або null if not provided (indicates current user).
 *
 * @return array
 */
function wp_kama_upload_mimes_filter( $t, $user ){

	// Filter...
	return $t;
}
$t
(масив)

Дані Mime типів у вигляді масиву. Повернення функції wp_get_mime_types() .

Масив буде містити елементи з ключем у відео регулярки для мімі типу, наприклад, 'jpg|jpeg|jpe'і значенням – сам міме тип, наприклад 'image/jpeg'.

$user
(число/WP_User/null)
ID або об’єкт користувача. Якщо вказати
null, буде взято поточний користувач.

Приклади

0

#1 Дозволяємо завантаження CSV файлів

add_filter( 'upload_mimes', 'add_csv_type' );
function add_csv_type( $mime_types ){
	$mime_types['csv'] = 'text/csv';

	return $mime_types;
}
0

#2 Дозволимо адмінам завантажувати будь-які файли без перевірок

Якщо вказати константу ALLOW_UNFILTERED_UPLOADS у плагіні або файлі wp-config.php , адміністратори (користувачі з правом unfiltered_upload ) зможуть завантажувати файли будь-яких типів:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Докладніше читайте тут .

список змін

З версії 2.0.0Введено.

Де викликається хук

upload_mimes

wp-includes/functions.php 3548

return apply_filters( 'upload_mimes', $t, $user );

Де використовується хук у WordPress

wp-includes/ms-default-filters.php 103

add_filter( 'upload_mimes', 'check_upload_mimes');

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *