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


不,image/jpg和image/jpeg不一样。

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

见https://www.rfc-editor.org/rfc/rfc3745, https://www.w3.org/Graphics/JPEG/。

向IE提供错误的图像/jpg内容类型可能会导致问题,请参阅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类型与文件扩展名不同。然而,有时它们具有相同的价值。

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

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

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

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

考虑到:

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

简单的回答是:

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

既然说到这里……

旧版本的ie浏览器可以自由上传Mime类型为image/pjpeg的jpeg文件,当然,这意味着其他人要做更多的工作。他们还将png文件上传为image/x-png。