是MIME类型'image/jpg'image/jpeg'?

非常简单的问题,但似乎在网上找不到。我正在尝试制作一个程序,根据文件类型将给我扩展名。

402997 次浏览

不,image/jpgimage/jpeg不一样。

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

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

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

对于那些可能有帮助的人,当我必须在应用程序上处理图像时,我使用这个列表作为引用来定义我的内容类型。

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

content-type没有任何image/jpg属性。

没有MIME类型image/jpg;有image/jpeg。然而,文件名扩展名为.jpg的文件和MIME类型之间的映射有很多变化。在实践中,几乎所有软件都以预期的方式处理名为*.jpg的映像文件

这个特定的主题令人困惑,因为与MIME类型相关联的文件扩展名的不同关联取决于哪个组织创建了MIME类型的文件扩展名表。换句话说,文件扩展名.jpg可以是许多不同的东西。

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

这些“完整的清单”;和RFC没有MIME类型image/jpg!但是对于MIME类型image/jpeg,一些列表确实有不同的文件扩展名(.jpeg.jpg,…)其他列表没有提到image/jpeg

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

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

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

另一件令人困惑的事情是:它是“__abc0”,还是“__abc1”,还是“__abc2”,还是“__abc3”,还是“__abc4”,还是“__abc5”?😧


IANA最正式的表面上的文件令人惊讶地不充分。没有为文件扩展名.jpg注册MIME类型,但存在奇怪的vnd.sealedmedia.softseal.jpg。文件扩展名__abc2只被称为video类型,而文件扩展名.jpeg是一种图像类型(什么时候小写字母和大写字母开始重要了!?)同时,jpeg2000video类型,而vnd.sealedmedia.softseal.jpg0认为vnd.sealedmedia.softseal.jpg1是image类型!IANA列表似乎迎合了公司特定的jpeg格式(例如vnd.sealedmedia.softseal.jpg)


总之……

由于之前的混淆,很难找到一个业界认可的将文件名扩展名映射到MIME类型的规范文档(反之亦然),特别是对于JPEG图像文件格式



相关问题"星球上所有MimeTypes的列表,映射到文件扩展名?< / em >"

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

https://www.iana.org/assignments/media-types/media-types.xhtml包含一个已注册Mime类型列表,尽管没有什么阻止你创建自己的Mime类型,只要你在发送端和接收端。这就是微软参与进来的地方。

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

引起混乱的操作系统是MSDOS,它限制扩展为3个字符。这种限制一直延续到今天,在SD卡等设备中,它们仍然以相同的方式存储数据。

这种限制的一个副作用是,一些文件扩展名,如.gif匹配他们的Mime类型,image/gif,而其他的则是妥协的。这包括image/jpeg,其扩展名为.jpg。即使在取消了限制的现代Windows中,微软也从未放过过去,因此文件扩展名仍然是缩写版本。

考虑到:

  1. 文件扩展名是文件类型
  2. 历史上,一些操作系统有严重的文件名限制
  3. 有些操作系统会自行制定规则

简单的回答是:

  • 技术上,没有image/jpg这样的东西,所以答案是 它与image/jpeg
  • 不同 这不会阻止一些操作系统和软件处理 就好像它是相同的

既然说到这里……

Internet Explorer的旧版本擅自上传了Mime类型为image/pjpegjpeg文件,当然,这对其他人来说意味着更多的工作。他们还上传了png文件作为image/x-png