24

Я знаю, что могу использовать определенные типы MIME, перечисленные, например, здесь, или универсальный MIME-тип для любого файла, такого как application/octet-stream , но существует ли универсальный MIME-тип для всех файлов изображений?

(Я хочу отредактировать файл .desktop в Linux Mint KDE, чтобы создать запись в контекстном меню «Действие» в Dolphin File Manager, которая будет отображаться только для файлов изображений.)

2 ответа2

25

Существует ли универсальный тип MIME для всех файлов изображений?

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

Вам нужен MIME-тип, чтобы знать, как обрабатывать файл (без необходимости читать заголовок файла).

Заметки:

  • Не у всех файлов изображений есть заголовок, который определяет их тип.

  • Например, файлы SVG - это просто файлы XML. Таким образом, без правильного mimetype или расширения не было бы способа правильно определить тип файла.

  • Типы MIME указаны как Content-Type/subtype

  • Нет image/generic типа Mime (полный список подтипов зарегистрированных изображений IANA см. Ниже).


Означает ли это, что есть MIME-тип для нескольких файлов изображений?

Не существует единого Content-Type/subtype который охватывает несколько форматов изображений.

Теоретически вы можете использовать неизвестный подтип, такой как image/xyz но W3C прямо говорит:

«Content-Type image/xyz достаточно, чтобы сообщить пользовательскому агенту, что данные являются изображением, даже если пользовательский агент не знает о конкретном формате изображения xyz ...» такое действие может быть целесообразным для нераспознанных подтипов текста, но не для нераспознанных подтипов изображения или аудио

В целом, Content-Type верхнего уровня используется для объявления общего типа данных, в то время как подтип определяет конкретный формат для этого типа данных.

Таким образом, Content-Type «image /xyz» достаточно, чтобы сообщить пользовательскому агенту, что данные являются изображением, даже если пользовательский агент не знает о конкретном формате изображения "xyz".

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

По этой причине зарегистрированные подтипы аудио, изображений, текста и видео не должны содержать встроенную информацию, которая действительно имеет другой тип. Такие составные типы должны быть представлены с использованием типов "multipart" или "application".

Source W3C - Поле заголовка типа содержимого


Могу ли я использовать подстановочный знак как image/* для моего особого случая?

так что это может быть использовано для моих целей без необходимости указывать единственные расширения файлов /mimes?

Да. Как вы указали, подстановочный знак может использоваться при указании "записи рабочего стола" для сред рабочего стола KDE и GNOME.

Тем не менее, обратите внимание, что Key = MimeType устарела, поскольку существует новый стандарт для этого.

Type=MimeType устарел, так как теперь существует новый стандарт для этого, см. Спецификацию базы данных Shared MIME-info для получения дополнительной информации. В результате шаблоны ключей (различные расширения имен файлов, связанные с типом MIME) и DefaultApp (приложение по умолчанию, связанное с этим типом MIME) также устарели.

Спецификация входа рабочего стола

Вы также можете использовать шаблоны для типов MIME в IIS, но рекомендуется не делать этого:

Вы также можете настроить IIS для обслуживания неопределенных типов файлов, добавив подстановочный знак (*) MIME-тип.

Не используйте подстановочные MIME-типы на производственных серверах. Это может привести к тому, что IIS будет обслуживать нераспознанные файлы и отображать конфиденциальную информацию для пользователей.

MIME-типы с подстановочными знаками предназначены для целей тестирования или в тех случаях, когда фильтры Internet Server API (ISAPI) были разработаны специально для обработки этих подстановочных сценариев, например, ISAPI с настраиваемой аутентификацией.

Источник Создание глобальных типов MIME


дальнейшее чтение

1

Согласно этому SO-ответу, нет общего MIME-типа. Проблема заключается в том, что MIME-тип всегда состоит из типа, подтипа и необязательного параметра: Type/Subtype; Parameter (см. Здесь). Вы хотите использовать только тип, но по определению требуется подтип, и нет общего подтипа. Список всех типов изображений можно найти здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .