Чи є загальний mime-тип для всіх файлів зображень?


27

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

(Я хочу відредагувати .desktopфайл у Linux Mint KDE, щоб створити запис контекстного меню "Дія" в диспетчері файлів Dolphin, який відображався б лише для файлів зображень.)


1
Чи буде image/*працювати (як це роблять браузери)?
Boldewyn

@Boldewyn - image/*працює для цілей, зазначених у моєму запитанні, навіть для svgфайлів - тобто як запис на робочому столі MimeType=image/*. Будь ласка, дайте відповідь на це більш конкретне питання, на яке ви коментуєте, - це відповідь.

Відповіді:


26

Чи є загальний mime-тип для всіх файлів зображень?

Зазвичай цього немає, але є кілька винятків, задокументованих пізніше у цій відповіді.

Вам потрібен тип Mime, щоб знати, як обробити файл (без читання заголовка файлу).

Примітки:

  • Не всі файли зображень мають заголовок, який визначає їх тип.

  • Наприклад, SVG-файли - це лише XML-файли. Тож без правильного міметипу чи розширення не було б можливості правильно визначити тип файлу.

  • Типи Mime визначаються як Тип вмісту / підтип

  • Типу Mime немає image/generic(див. "Подальше читання" нижче для повного переліку підтипів зображень, зареєстрованих IANA).


Чи означає це, що існує тип mime для декількох файлів зображень?

Немає жодного, Content-Type/subtype який охоплював би декілька форматів зображень.

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

"Тип вмісту image/xyzдостатньо, щоб сказати агенту користувача, що дані є зображенням, навіть якщо користувачеві агент не знає конкретного формату зображення xyz..." така дія може бути розумною для нерозпізнаних підтипів тексту, але не для нерозпізнаних підтипів зображення чи звуку "

Взагалі тип вмісту верхнього рівня використовується для оголошення загального типу даних, тоді як підтип визначає конкретний формат для цього типу даних.

Таким чином, типу вмісту "image / xyz" достатньо, щоб повідомити агенту користувача, що дані є зображенням, навіть якщо користувальницький агент не знає конкретного формату зображення "xyz".

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

З цієї причини зареєстровані підтипи аудіо, зображення, тексту та відео не повинні містити вбудованої інформації, яка насправді іншого типу. Такі типи сполук повинні бути представлені, використовуючи типи "багаточастинний" або "застосувальний".

Джерело W3C - Поле заголовка типу вмісту


Чи можна використовувати підстановку, як image/*для мого особливого випадку?

щоб його можна було використовувати для моїх цілей без необхідності вказувати особливі розширення / міми сингулярного файлу?

Так. Як ви вже вказали, підстановка може бути використана при введенні "Запис на робочий стіл" для середовищ KDE та GNOME на робочому столі.

Однак зауважте, що Key = MimeTypeзастаріло, оскільки для цього існує новий стандарт.

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

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

Ви також можете використовувати символи підключення для типів mime в IIS, але радимо не робити цього:

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

Не використовуйте підстановочні MIME-типи на виробничих серверах. Це може призвести до того, що IIS обслуговує нерозпізнані файли та відображає конфіденційну інформацію для користувачів.

Wildcard MIME-типи призначені для тестування або в сценаріях, коли фільтри API сервера Internet (ISAPI) були розроблені спеціально для обробки цих сценаріїв підстановки, наприклад, спеціальної ISAPI аутентифікації.

Джерело Створення глобальних типів MIME


Подальше читання


Чи означає це, що існує тип mime для декількох файлів зображень - не всіх, але багатьох, щоб його можна було використовувати для моїх цілей без необхідності вказувати особливі розширення / mimes файлів?

2
@cipricus Немає жодного, content-type/subtype який би охоплював формати зображень, що складаються з різних зображень.
DavidPostill

@cipricus Відповідь оновлено, щоб вирішити ваш коментар.
DavidPostill

як зазначено в коментарі під моїм запитанням, image/*працює для цілей, зазначених у моєму запитанні, навіть для svgфайлів - тобто як запис на робочому столі MimeType=image/*.

Це може спрацювати, але відповідно до специфікації запису на робочому столі - " Type=MimeTypeзастаріло, оскільки для цього є новий стандарт, для отримання додаткової інформації дивіться специфікацію бази даних загальної MIME-інформації. Отже, шаблони ключів (різні розширення імен файлів, пов'язані з Тип MIME) та DefaultApp (додаток за замовчуванням, пов’язаний із цим типом MIME) також застаріли. "
DavidPostill

2

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


Як не дивно, у цьому списку всіх типів зображень є пробіли gifі jpeg, тоді як цей список sitepoint.com/web-foundations/mime-types-complete-list показує, що вони є image/gifі image/jpegвідповідно.
user664833
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.