Gibt es einen generischen MIME-Typ für alle Bilddateien?

27

Ich weiß, dass ich die hier aufgeführten MIME-Typen oder einen generischen MIME-Typ für eine beliebige Datei verwenden application/octet-streamkann. Gibt es jedoch einen generischen MIME-Typ für alle Bilddateien?

(Ich möchte eine .desktopDatei in Linux Mint KDE bearbeiten , um im Dolphin File Manager einen Kontextmenüeintrag "Aktion" zu erstellen, der nur für Bilddateien angezeigt wird.)

Hervorragend
quelle
1
Würde image/*funktionieren (wie Browser)?
Boldewyn
@Boldewyn - image/*funktioniert für den in meiner Frage angegebenen Zweck auch für svgDateien - also als Desktop-Eintrag wie MimeType=image/*. Bitte beantworten Sie diese spezifischere Frage, auf die Sie eine Antwort geben.

Antworten:

26

Gibt es einen generischen MIME-Typ für alle Bilddateien?

Normalerweise gibt es keine, aber es gibt ein paar Ausnahmen, die später in dieser Antwort dokumentiert werden.

Sie benötigen einen Mime-Typ, um eine Datei verarbeiten zu können (ohne den Datei-Header lesen zu müssen).

Anmerkungen:

  • Nicht alle Bilddateien haben einen Header, der ihren Typ angibt.

  • SVG-Dateien sind beispielsweise nur XML-Dateien. Ohne den richtigen Mimetyp oder die richtige Erweiterung gibt es also keine Möglichkeit, den Dateityp korrekt zu identifizieren.

  • Mime-Typen werden als Inhaltstyp / Untertyp angegeben

  • Es gibt keinen Mime-Typ image/generic( eine vollständige Liste der von IANA registrierten Bild-Untertypen finden Sie unter "Weitere Informationen" weiter unten).


Bedeutet das, dass es einen MIME-Typ für mehrere Bilddateien gibt?

Es gibt keine einzige Content-Type/subtype , die mehrere Bildformate abdeckt.

Theoretisch könnte man einen unbekannten Subtyp verwenden, image/xyzaber W3C sagt explizit:

„ein Content-Type image/xyzist genug , um einen User - Agent zu sagen , dass die Daten ein Bild ist, selbst wenn der User - Agent keine Kenntnis von dem Bildformat hat xyz...“ eine solche Aktion könnte für unerkannt Subtypen von Text sinnvoll sein, aber nicht für nicht erkannte Untertypen von Bild oder Audio "

Im Allgemeinen wird der Inhaltstyp der obersten Ebene verwendet, um den allgemeinen Datentyp zu deklarieren, während der Untertyp ein bestimmtes Format für diesen Datentyp angibt.

Somit reicht ein Inhaltstyp von "image / xyz" aus, um einem Benutzeragenten mitzuteilen, dass die Daten ein Bild sind, selbst wenn der Benutzeragent keine Kenntnis über das spezifische Bildformat "xyz" hat.

Diese Informationen können beispielsweise verwendet werden, um zu entscheiden, ob einem Benutzer die Rohdaten eines nicht erkannten Untertyps angezeigt werden sollen oder nicht - eine solche Aktion kann für nicht erkannte Untertypen von Text sinnvoll sein, jedoch nicht für nicht erkannte Untertypen von Bild oder Audio.

Aus diesem Grund sollten registrierte Untertypen von Audio, Bild, Text und Video keine eingebetteten Informationen enthalten, die wirklich von einem anderen Typ sind. Solche zusammengesetzten Typen sollten unter Verwendung der Typen "Multipart" oder "Application" dargestellt werden.

Source W3C - Das Content-Type Header Feld


Kann ich image/*für meinen Sonderfall einen Platzhalter wie verwenden ?

damit es für meinen Zweck verwendet werden kann, ohne dass die einzelnen Dateierweiterungen / Mimen angegeben werden müssen?

Ja. Wie Sie bereits bemerkt haben, kann ein Platzhalter verwendet werden, wenn Sie den "Desktop-Eintrag" für die KDE- und GNOME-Desktop-Umgebungen festlegen.

Beachten Sie jedoch, dass Key = MimeTypeveraltet ist, da es dafür einen neuen Standard gibt.

Type=MimeTypeist veraltet, da es hierfür jetzt einen neuen Standard gibt. Weitere Informationen finden Sie in der Spezifikation der gemeinsam genutzten MIME-Info-Datenbank . Infolgedessen werden auch die Keys Patterns (verschiedene mit dem MIME-Typ verknüpfte Dateinamenerweiterungen) und DefaultApp (die mit diesem MIME-Typ verknüpfte Standardanwendung) nicht mehr unterstützt.

Quelle Desktop Entry Specification

Sie können in IIS auch Platzhalter für MIME-Typen verwenden, es wird jedoch empfohlen, dies nicht zu tun:

Sie können IIS auch so konfigurieren, dass undefinierte Dateitypen bereitgestellt werden, indem Sie einen MIME-Typ mit Platzhalterzeichen (*) hinzufügen.

Verwenden Sie keine Platzhalter-MIME-Typen auf Produktionsservern. Dies kann dazu führen, dass IIS nicht erkannte Dateien bereitstellt und Benutzern vertrauliche Informationen anzeigt.

Platzhalter-MIME-Typen sind für Testzwecke oder in Szenarien vorgesehen, in denen ISAPI-Filter (Internet Server API) speziell für diese Platzhalter-Szenarien entwickelt wurden, z. B. eine benutzerdefinierte ISAPI-Authentifizierung.

Quelle Erstellen globaler MIME-Typen


Weitere Lektüre

DavidPostill
quelle
Bedeutet dies, dass es einen MIME-Typ für mehrere Bilddateien gibt - nicht für alle, sondern für viele, sodass er für meinen Zweck verwendet werden kann, ohne dass die einzelnen Dateierweiterungen / MIMES angegeben werden müssen?
2
@cipricus Es gibt keine Single content-type/subtype , die mehrere Bildformate abdeckt.
DavidPostill
@cipricus Antwort aktualisiert, um Ihren Kommentar zu adressieren.
DavidPostill
Wie in einem Kommentar unter meiner Frage angegeben, image/*funktioniert der in meiner Frage angegebene Zweck auch für svgDateien - also als Desktop-Eintrag wie MimeType=image/*.
Möglicherweise funktioniert es, aber laut Desktop Entry Specification - " Type=MimeTypewird es nicht mehr empfohlen, da es hierfür jetzt einen neuen Standard gibt. Weitere Informationen finden Sie in der Shared MIME-info Database-Spezifikation MIME-Typ) und DefaultApp (die diesem MIME-Typ zugeordnete Standardanwendung) sind ebenfalls veraltet. "
DavidPostill
2

Nach dieser SO-Antwort gibt es keinen generischen MIME-Typ. Das Problem ist, dass der MIME-Typ immer aus einem Typ, einem Subtyp und einem optionalen Parameter besteht: Type/Subtype; Parameter(siehe hier ). Sie möchten nur den Typ verwenden, aber per Definition ist ein Untertyp erforderlich und es gibt keinen generischen Untertyp. Eine Liste aller Bildtypen finden Sie hier .

Kontrast
quelle
Seltsamerweise enthält diese Liste "aller" Bildtypen Leerzeichen für gifund jpeg, während diese Liste sitepoint.com/web-foundations/mime-types-complete-list anzeigt, dass es sich um image/gifund handelt image/jpeg.
user664833