# Discourse ошибочно определяет загруженный файл как изображение

**URL:** <https://meta.discourse.org/t/discourse-incorrectly-detecting-uploaded-file-as-an-image/283564>\
**Category:** Support\
**Created:** [26.Октябрь.2023 17:44:13 UTC](https://meta.discourse.org/t/discourse-incorrectly-detecting-uploaded-file-as-an-image/283564 "2023-10-26T17:44:13Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![xyzzy](https://avatars.discourse-cdn.com/v4/letter/x/e36b37/32.png) [@xyzzy](https://meta.discourse.org/u/xyzzy)\
**Post date:** [26.Октябрь.2023 17:44:13 UTC](https://meta.discourse.org/t/discourse-incorrectly-detecting-uploaded-file-as-an-image/283564/1 "2023-10-26T17:44:13Z")

</div>

У меня есть несколько пользователей-инженеров, которые хотят прикреплять к своим сообщениям файлы данных с нестандартными расширениями. По сути, это обычные текстовые файлы, но содержащие расширенные символы ASCII.

Я попытался обновить конфигурацию NGINX в Discourse, чтобы указать типы MIME для этих файлов, но это не сработало. Две недели назад я создал тему ([How to customize MIME media type emitted for certain attachments?](https://meta.discourse.org/t/how-to-customize-mime-media-type-emitted-for-certain-attachments/282111)) на эту тему, но пока не получил ответов. Даже если NGINX не обновлён, он всё равно будет обслуживать неизвестные типы файлов с использованием резервного типа MIME “application/octet-stream”. Пока что меня это устраивает.

Однако, когда пользователи пытаются **загрузить** эти файлы данных в сообщение (либо используя кнопку «Загрузить», либо перетаскиванием), появляется всплывающее окно с ошибкой от Discourse, подобное этому:

 ![Discourse Error](https://global.discourse-cdn.com/meta/original/4X/a/d/f/adf6cf45ba45936f66250eb607c136b2ec0ea78d.png)

Похоже, что при загрузке файлов Discourse пытается «проявить смекалку» и определить, является ли файл изображением или чем-то другим. Более того, судя по всему, это определение происходит на основе содержимого файла (похоже на стандартную Unix-команду “file”). Я предполагаю, что это нужно, чтобы Discourse мог решить, следует ли встроить файл в содержимое сообщения или разместить его отдельно как вложение.

В случае с этими файлами данных такая проверка ошибочно определяет их как изображения. Просто ради интереса я поместил несколько таких файлов на машину с Ubuntu и проверил их с помощью команды “file”, и действительно, они были определены как “JPEG image data”.

Есть ли способ загрузить файлы без попытки Discourse определить, являются ли они изображениями? То есть: «Пожалуйста, загрузите это как вложение, независимо от содержания, не встраивайте»?

В качестве альтернативы я мог бы настроить Discourse на разрешение загрузки ZIP-файлов и попросить пользователей архивировать свои файлы перед загрузкой, но мне не хотелось бы открывать сайт для загрузки случайных ZIP-файлов. Это кажется проблемой безопасности.

Заранее спасибо за любую помощь!

---

_[View the full topic](https://meta.discourse.org/t/discourse-incorrectly-detecting-uploaded-file-as-an-image/283564)._
