Я знаю, что могу использовать определенные типы MIME, перечисленные, напримерздесь, или общий тип MIME для любого файла, например application/octet-stream
, но существует ли общий тип MIME для всех файлов изображений?
(Я хочу отредактировать .desktop
файл в Linux Mint KDE, чтобы создать пункт контекстного меню «Действие» в файловом менеджере Dolphin, который будет отображаться только для файлов изображений.)
решение1
Существует ли общий MIME-тип для всех файлов изображений?
Обычно этого не происходит, но есть несколько исключений, описанных далее в этом ответе.
MIME-тип необходим для того, чтобы знать, как обрабатывать файл (без необходимости читать заголовок файла).
Примечания:
Не все файлы изображений имеют заголовок, идентифицирующий их тип.
SVG-файлы, например, являются просто файлами XML. Поэтому без правильного mimetype или расширения не будет возможности правильно определить тип файла.
Типы MIME указываются как Content-Type/subtype.
Типа MIME не существует
image/generic
(полный список подтипов изображений, зарегистрированных IANA, см. в разделе «Дополнительная информация» ниже).
Означает ли это, что существует MIME-тип для нескольких файлов изображений?
Здесь нетодинокий Content-Type/subtype
который охватывает несколько форматов изображений.
Теоретически вы можете использовать неизвестный подтип, например, image/xyz
но W3C прямо говорит:
«Content-Type image/xyz
достаточно, чтобы сообщить пользовательскому агенту, что данные являются изображением, даже если пользовательский агент не имеет сведений о конкретном формате изображения xyz
...» такое действие может быть разумным для нераспознанных подтипов текста,но не для нераспознанных подтипов изображений или аудио"
Как правило, Content-Type верхнего уровня используется для объявления общего типа данных, тогда как подтип определяет конкретный формат для этого типа данных.
Таким образом, Content-Type «image/xyz» достаточно, чтобы сообщить пользовательскому агенту, что данные являются изображением, даже если пользовательский агент не имеет сведений о конкретном формате изображения «xyz».
Такая информация может использоваться, например, для принятия решения о том, показывать ли пользователю необработанные данные из нераспознанного подтипа — такое действие может быть разумным для нераспознанных подтипов текста, но не для нераспознанных подтипов изображений или аудио.
По этой причине зарегистрированные подтипы аудио, изображения, текста и видео не должны содержать встроенную информацию, которая на самом деле относится к другому типу. Такие составные типы должны быть представлены с использованием типов "multipart" или "application".
ИсточникW3C — Поле заголовка Content-Type
Могу ли я использовать подстановочный знак «лайк» image/*
для моего особого случая?
чтобы его можно было использовать в моих целях без необходимости указания отдельных расширений файлов/MIME?
Да. Как вы указали, при указании «Desktop Entry» для сред рабочего стола KDE и GNOME можно использовать подстановочный знак.
Однако обратите внимание, что Key= MimeType
устарел, поскольку для него существует новый стандарт.
Type=MimeType
устарело, так как теперь для этого есть новый стандарт, см.Спецификация общей базы данных MIME-информациидля получения дополнительной информации. В результате Keys Patterns (различные расширения имен файлов, связанные с типом MIME) и DefaultApp (приложение по умолчанию, связанное с этим типом MIME) также устарели.
ИсточникТехнические характеристики начального уровня рабочего стола
Вы также можете использовать подстановочные знаки для типов MIME в IIS, но рекомендуетсянетсделай это:
Вы также можете настроить IIS для обслуживания неопределенных типов файлов, добавив подстановочный знак (*) типа MIME.
Не используйте подстановочные MIME-типы на производственных серверах. Это может привести к тому, что IIS будет обслуживать нераспознанные файлы и отображать конфиденциальную информацию пользователям.
Подстановочные MIME-типы предназначены для целей тестирования или в сценариях, где фильтры Internet Server API (ISAPI) были разработаны специально для обработки таких подстановочных сценариев, например, настраиваемая аутентификация ISAPI.
ИсточникСоздание глобальных типов MIME
дальнейшее чтение
- IANA - Зарегистрированные типы носителей - Изображение(Тип и подтипы содержимого изображения)
- W3C — Поле заголовка Content-Type
решение2
В соответствии сэтот ТАК ответ, нет универсального MIME-типа. Проблема в том, что MIME-тип всегда состоит из типа, подтипа и необязательного параметра: Type/Subtype; Parameter
(см.здесь). Вы хотите использовать только тип, но по определению требуется подтип, а универсального подтипа нет. Список всех типов изображений можно найтиздесь.