很简单的问题,但似乎无法在网上任何地方找到它。我正在尝试制作一个程序,根据文件类型将给我扩展。
不,image/jpg
与image/jpeg
不同,只有image/jpeg
被认为是JPEG文件的实际mime类型。
见https://tools.ietf.org/html/rfc3745,https://www.w3.org/Graphics/JPEG/。
向IE提供不正确的内容类型的image/jpg
会导致问题,请参阅http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm。
对于那些可能有帮助的人,我使用this list作为参考来定义我的内容类型,当我必须处理我的应用程序上的图像。
它说jpg扩展可以用Content-type : image/jpeg
声明
内容类型没有任何image/jpg
属性。
tl;博士取决于你的要求
总的来说,似乎没有MIME类型image/jpg
。然而,在实践中,几乎所有软件都处理名为“*.jpg
”的图像文件。此特定主题令人困惑,因为与MIME类型关联的文件扩展名的不同关联(例如,文件扩展名为.jpg
)取决于哪个组织创建了MIME类型的文件扩展名表。
例如,这里有3个“完整列表”,它们围绕各种JPEG图像格式文件扩展名和相关的MIME类型而变化。
.jfif
,.jfif-tbnl
,.jpe
,.jpeg
,.jpg
→image/jpeg
.jfif
,.jpe
,.jpeg
,.jpg
→image/pjpeg
.jpeg
,.jpg
→image/jpeg
.jpeg
,.jpg
→image/x-citrix-jpeg
→.pjpeg
image/pjpeg
.jpeg
→(没有)
.JPEG
→video/JPEG
.jpm
→image/jpm
(指JPEG 2000)
.jpx
→image/jpx
(指JPEG 2000)
vnd.sealedmedia.softseal.jpg
→image/vnd.sealedmedia.softseal.jpg
???这些“完整列表”没有MIME类型image/jpg
!但对于MIME类型image/jpeg
,这些列表确实有不同的文件扩展名(.jpeg
,.jpg
,...)。此外,还有不同类型的JPEG图像格式(例如,渐进式JPEG图像格式,JPEG 2000等),它们在文件扩展名和声明的MIME类型中可能重叠也可能不重叠。这增加了整体混乱。 (另一个令人困惑的事情;是“mime”,“MIME”,“MIME类型”,或“mime类型”,或“mime / type”⁉)
似乎任何人(或公司)都可以组成他们经常做的文件扩展名和MIME类型。 IANA最官方的看似文件令人惊讶地不足(没有注册图像类型.jpeg
,.JPEG
只被称为视频类型)并且似乎迎合公司特定的jpeg格式(例如vnd.sealedmedia.softseal.jpg
)。
相关问题“List of ALL MimeTypes on the Planet, mapped to File Extensions?”。
这里要注意的重要一点是mime类型与文件扩展名不同。然而,有时它们具有相同的价值。
https://www.iana.org/assignments/media-types/media-types.xhtml包含一个已注册的Mime类型列表,但只要您同时处于发送和接收端,就没有什么可以阻止您自己编写。这是微软进入图片的地方。
存在很多混淆的是操作系统通过使用文件名的尾端(称为扩展名)来自己识别文件类型的方式。我是现代操作系统,整个名称是一个长字符串,但在更原始的操作系统中,它被视为一个单独的属性。
引起混淆的操作系统是MSDOS,它将扩展限制为3个字符。到目前为止,这种限制在SD卡等设备中仍然存在,SD卡仍然以相同的方式存储数据。
这种限制的一个副作用是某些文件扩展名,例如.gif
匹配他们的Mime Type,image/gif
,而其他文件扩展名则受到损害。这包括image/jpeg
,其扩展缩短为.jpg
。即使在解除限制的现代Windows中,微软也从不放弃过去,因此文件扩展名仍然是缩短版本。
鉴于此:
简短的回答是:
image/jpg
这样的东西,所以答案是它与image/jpeg
不一样