Загрузка файлов без мультимедиа?

Я хочу добавить файлы в WordPress, которые не являются изображениями, встроенным видео и т. П. Однако, когда я пытаюсь это использовать с помощью функции массовой загрузки, я получаю следующую ошибку.

«Тип файла не соответствует рекомендациям по безопасности».

Есть ли способ сделать это с помощью WordPress?

Solutions Collecting From Web of "Загрузка файлов без мультимедиа?"

Существует два способа запуска ошибки ( источник ):

  • пользователь не имеет возможности unfiltered_upload ;

  • WP не нравится тип файла или расширение.

Latter проверяется wp_check_filetype_and_ext() ( source ), которая фильтрует возврат через wp_check_filetype_and_ext hook, чтобы разрешить проверку дополнительных типов файлов.

Расширение @Rarst Answer, я пробовал фильтр wp_check_filetype_and_ext и именно так его можно использовать, чтобы разрешить типы файлов PHP:

 add_filter( 'wp_check_filetype_and_ext', 'file_and_ext_wpse_9289', 10, 4 ); function file_and_ext_wpse_9289( $types, $file, $filename, $mimes ) { if( false !== strpos( $filename, '.php' ) ) { $types['ext'] = 'php'; $types['type'] = 'text/x-php'; } return $types; } 

Однако самым простым способом является использование фильтра upload_mimes :

  • Типы файлов белого списка для загрузки мультимедиа
  • Каков правильный MIME-тип для PSD (Photoshop)

Я получил ту же ошибку, когда пытался загрузить исходные файлы .java .

Используйте свой любимый текстовый редактор и откройте файл wp-includes/functions.php .
Найдите 'mpeg' , второе вхождение приведет вас к функции с именем get_allowed_mime_types.
Я добавил 'java' к строке, которая имела 'txt|asc|c|cc|h' . Теперь загрузка файла отлично работает для .java файлов.