所有图像文件都有通用的mime类型吗?


27

我知道我可以使用此处列出的特定mime类型,例如,对于任何文件都可以使用通用mime类型application/octet-stream,但是所有图像文件都可以使用通用mime类型吗?

(我想.desktop在Linux Mint KDE中编辑一个文件,以便在Dolphin File Manager中创建一个“操作”上下文菜单项,该项仅在图像文件中显示。)


1
可以image/*工作(就像浏览器一样)吗?
Boldewyn

@Boldewyn- image/*用于我的问题中指示的目的,甚至适用于svg文件-即作为桌面项MimeType=image/*。请回答这个更具体的问题,您将对此发表评论。

Answers:


26

所有图像文件都有通用的mime类型吗?

通常没有,但是此答案后面有一些例外记录。

您需要Mime Type才能知道如何处理文件(而不必读取文件头)。

笔记:

  • 并非所有图像文件都具有标识其类型的标头。

  • 例如,SVG文件只是XML文件。因此,如果没有正确的mimetype或扩展名,就无法正确识别文件的类型。

  • Mime类型指定为Content-Type / subtype

  • 没有Mime类型image/generic(有关IANA注册图像子类型的完整列表,请参见下面的“更多信息”)。


这是否意味着多个图像文件具有mime类型?

没有一个 Content-Type/subtype涵盖多种图像格式。

从理论上讲,您可以使用未知的子类型,例如image/xyzW3C明确表示:

“ Content-Type of image/xyz足以告诉用户代理数据是图像,即使用户代理不知道特定图像格式也是如此xyz...”这样的操作对于无法识别的文本子类型可能是合理的,但是不适用于无法识别的图像或音频子类型

通常,顶级Content-Type用于声明数据的常规类型,而子类型为该数据类型指定特定格式。

因此,即使用户代理不知道特定图像格式“ xyz”,Content-Type“ image / xyz”也足以告诉用户代理数据是图像。

此类信息可用于例如确定是否向用户显示来自无法识别的子类型的原始数据-这种操作对于文本的无法识别的子类型可能是合理的,但对于图像或音频的无法识别的子类型则可能是合理的。

因此,已注册的音频,图像,文本和视频子类型不应包含真正属于其他类型的嵌入信息。此类化合物类型应使用“多部分”或“应用”类型表示。

W3C-内容类型标题字段


我可以在image/*特殊情况下使用通配符吗?

这样就可以将其用于我的目的而无需指定单个文件扩展名/ MIME?

是。如您所指出的,当为KDE和GNOME桌面环境指定“桌面条目”时,可以使用通配符。

但是,请注意MimeType不建议使用Key = ,因为有一个新的标准。

Type=MimeType不推荐使用,因为现在有一个新的标准,有关更多信息,请参见Shared MIME-info Database规范。结果,也不建议使用密钥模式(与MIME类型相关联的各种文件扩展名)和DefaultApp(与该MIME类型相关联的默认应用程序)。

桌面条目规范

您也可以对IIS中的mime类型使用通配符,但建议要这样做:

您还可以通过添加通配符(*)MIME类型,将IIS配置为提供未定义的文件类型。

不要在生产服务器上使用通配符MIME类型。这样做可能导致IIS提供无法识别的文件并向用户显示敏感信息。

通配符MIME类型用于测试目的,或者用于Internet Server API(ISAPI)筛选器专门用于处理这些通配符方案的情况,例如自定义身份验证ISAPI。

创建全局MIME类型的


进一步阅读


这是否意味着多个图像文件都有一个mime类型-不是全部,而是许多,因此可以用于我的目的而无需指定单个文件扩展名/ mime?

2
@cipricus没有任何一个 content-type/subtype可以涵盖多种图像格式。
DavidPostill

@cipricus答案已更新,以解决您的评论。
DavidPostill

如在我的问题下的注释中所指示的那样,image/*可用于我的问题中指示的目的,甚至适用于svg文件-即作为桌面项MimeType=image/*

它可能很好用,但根据桌面条目规范 -,Type=MimeType已弃用,因为现在有一个新的标准,请参阅Shared MIME-info数据库规范以获取更多信息。结果,密钥模式(与MIME类型)和DefaultApp(与此MIME类型关联的默认应用程序)也已弃用。”
DavidPostill

2

根据此SO-Answer,没有通用的MIME类型。问题是MIME-Type始终由Type,Subtype和可选Parameter Type/Subtype; Parameter(请参见此处)组成。您只想使用类型,但是根据定义,需要一个子类型,并且没有通用子类型。可以在此处找到所有图像类型的列表。


奇怪的是,“所有”图像类型的列表中有毛坯gifjpeg,而这个名单sitepoint.com/web-foundations/mime-types-complete-list表明他们image/gifimage/jpeg分别。
user664833
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.