ChatGPT解决这个技术问题 Extra ChatGPT

MIME 类型“image/jpg”是否与“image/jpeg”相同?

很简单的问题,但似乎在网上的任何地方都找不到。我正在尝试制作一个根据文件类型为我提供扩展名的程序。

AFAIK 只有“图像/jpeg”类型freeformatter.com/mime-types-list.html#mime-types-list
那一定是深夜混乱。我将尝试使用“image/jpeg”。

C
Community

不,image/jpgimage/jpeg 不同。

您应该使用 image/jpeg。只有 image/jpeg 被识别为 JPEG 文件的实际 MIME 类型。

请参阅 https://www.rfc-editor.org/rfc/rfc3745https://www.w3.org/Graphics/JPEG/

向 IE 提供不正确的 image/jpg Content-Type 可能会导致问题,请参阅 http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm


由这引起的主要问题是 Safari 将在预览中而不是在浏览器窗口中打开一个图像链接,因为它认为这是一个未知的图像类型(从技术上讲,它是)。
如果您使用 WkWebview 开发 iOS 应用程序,如果您使用 image/jpg 作为 MIME 类型,则图像将在 iOS 15 上显示为文本。使用 image/jpeg 解决了这个问题。
C
Community

tl; dr “标准”是大杂烩;这取决于你问谁!

总的来说,似乎没有 MIME 类型 image/jpg。然而,在实践中,几乎所有软件都可以很好地处理名为“*.jpg”的图像文件。
这个特定主题令人困惑,因为与 MIME 类型相关的文件扩展名的不同关联取决于创建文件名表的组织MIME 类型的扩展。换句话说,文件扩展名 .jpg 可以是许多不同的东西。

例如,这里有三个“完整列表”和一个 RFC,它们具有不同的 JPEG 图像格式文件扩展名和相关的 MIME 类型。

sitepoint.com mime-types-complete-list (archived) .jfif, .jfif-tbnl, .jpe, .jpeg, .jpg → image/jpeg .jfif, .jpe, .jpeg, .jpg → image/pjpeg

.jfif、.jfif-tbnl、.jpe、.jpeg、.jpg → 图像/jpeg

.jfif、.jpe、.jpeg、.jpg → 图像/pjpeg

freeformatter.com mime 类型(存档).jpeg、.jpg → image/jpeg .jpeg、.jpg → image/x-citrix-jpeg .pjpeg → image/pjpeg

.jpeg、.jpg → 图像/jpeg

.jpeg, .jpg → 图像/x-citrix-jpeg

.pjpeg → 图像/pjpeg

IANA“媒体类型”(以前称为 MIME 类型)列表(存档)(本文档列出“名称”,而不是“文件扩展名”) jpg 未提及 jpeg → 参见 RFC 2045(未提及),参见 RFC 2046 → image/ jpeg13 JPEG → 视频/JPEG jpeg2000 → 视频/jpeg2000 jpm → 图像/jpm (JPEG 2000) jpx → 图像/jpx (JPEG 2000) vnd.sealedmedia.softseal.jpg → 图像/vnd.sealedmedia.softseal.jpg

未提及.jpg

jpeg → 参见 RFC 2045(未提及),参见 RFC 2046 → image/jpeg13

JPEG → 视频/JPEG

jpeg2000 → 视频/jpeg2000

jpm → 图像/jpm (JPEG 2000)

jpx → 图像/jpx (JPEG 2000)

vnd.sealedmedia.softseal.jpg → image/vnd.sealedmedia.softseal.jpg

RFC 3745 MIME 类型注册 JPEG 2000 (ISO/IEC 15444) .jpg 文件扩展名未提及 .jpeg 文件扩展名未提及 .jp2, .jpg2 → image/jp2 (JPEG 2000)9 .jpf, .jpx → image/jpx ( JPEG 2000 ISO-JPEG2000-2 编码图像数据)10 .mj2、.mjp2 → video/mj2(运动 JPEG 2000)11 .jpm、.jpgm → image/jpm(JPEG 2000 配置文件和扩展名)12

.jpg 文件扩展名未提及

.jpeg 文件扩展名未提及

.jp2、.jpg2 → 图像/jp2 (JPEG 2000)9

.jpf、.jpx → image/jpx(JPEG 2000 ISO-JPEG2000-2 编码图像数据)10

.mj2、.mjp2 → 视频/mj2 (Motion JPEG 2000)11

.jpm、.jpgm → image/jpm(JPEG 2000 配置文件和扩展名)12

这些“完整列表”和 RFC 没有 MIME 类型 image/jpg!但对于 MIME 类型 image/jpeg,某些列表确实具有不同的文件扩展名(.jpeg.jpg、...)。其他列表未提及 image/jpeg

此外,还有不同类型的 JPEG 图像格式(例如,渐进式 JPEG 图像格式、JPEG 2000 等)和“JPEG 扩展”,它们在文件扩展名和声明的 MIME 类型上可能重叠也可能不重叠。

另一个令人困惑的事情是 RFC 3745 似乎与 IANA 媒体类型 不匹配,但相同的 RFC 应该通知 IANA 媒体类型 文档。例如,在 RFC 3745 中,.jpfimage/jpx 的首选文件扩展名,但在 IANA 媒体类型 中,名称 jpf 不存在(并且 IANA 文档引用RFC 3745!)。

另一个令人困惑的事情是 IANA 媒体类型列出了“名称”,但没有列出“文件扩展名”。这是故意的,但混淆了将文件扩展名映射到 MIME 类型的努力。

另一个令人困惑的事情:是“mime”,还是“MIME”,还是“MIME type”,还是“mime type”,还是“mime/type”,还是“media type”⁉ 😧

IANA 最官方的看似文件出人意料地不够充分。没有为文件扩展名 .jpg 注册 MIME 类型,但存在奇数 vnd.sealedmedia.softseal.jpg。文件扩展名.JPEG 仅称为 video 类型,而文件扩展名 .jpeg 是图像类型(小写和大写字母什么时候开始重要!?)。同时,jpeg2000video 类型,而 RFC 3745 认为 JPEG 2000image 类型! IANA 列表似乎迎合了公司特定的 jpeg 格式(例如 vnd.sealedmedia.softseal.jpg)。

总之...

由于先前的混淆,很难找到行业认可的将文件扩展名映射到 MIME 类型的规范文档,特别是对于 JPEG 图像文件格式。

相关问题“List of ALL MimeTypes on the Planet, mapped to File Extensions?”。


通常只有一个来源描述了相关标准,而不是 4 个(!)。 RFC 是一个很好的切入点!
l
lucyjosef

对于那些可能会有所帮助的人,当我必须在我的应用程序上处理图像时,我使用 this list 作为定义我的内容类型的参考。

它说可以用 Content-type : image/jpeg 声明 jpg 扩展名

内容类型没有任何 image/jpg 属性。


M
Manngo

这里要注意的重要一点是,mime 类型与文件扩展名不同。但是,有时它们具有相同的值。

https://www.iana.org/assignments/media-types/media-types.xhtml 包括已注册的 Mime 类型列表,但没有什么能阻止您自己编造,只要您同时处于发送端和接收端。这就是微软介入的地方。

有很多混淆的地方是,操作系统有自己的方式来识别文件类型,通过使用文件名的尾部,称为扩展名。在现代操作系统中,整个名称是一个长字符串,但在更原始的操作系统中,它被视为一个单独的属性。

造成混乱的操作系统是 MSDOS,它把扩展名限制为 3 个字符。这一限制在今天仍然以相同方式存储数据的设备(例如 SD 卡)中被继承。

此限制的一个副作用是某些文件扩展名(例如 .gif)与它们的 Mime 类型 image/gif 匹配,而其他文件扩展名则受到损害。这包括扩展名为 .jpgimage/jpeg。即使在解除限制的现代 Windows 中,微软也从未放过过去,因此文件扩展名仍然是缩短的版本。

鉴于:

文件扩展名不是文件类型从历史上看,一些操作系统有严重的文件名限制一些操作系统会继续前进并制定自己的规则

简短的回答是:

从技术上讲,没有 image/jpg 这样的东西,所以答案是它与 image/jpeg 不一样

这不会阻止某些操作系统和软件将其视为相同

当我们在它...

旧版本的 Internet Explorer 擅自上传具有 image/pjpeg 的 Mime 类型的 jpeg 文件,这当然意味着其他人需要做更多的工作。他们还将 png 个文件上传为 image/x-png