很简单的问题,但似乎无法在网上找到它。我正在尝试制作一个程序,该程序根据文件类型为我提供扩展名。
很简单的问题,但似乎无法在网上找到它。我正在尝试制作一个程序,该程序根据文件类型为我提供扩展名。
Answers:
不,image/jpg
与并不相同image/jpeg
,仅image/jpeg
被识别为JPEG文件的实际mime类型。
见https://tools.ietf.org/html/rfc3745,https://www.w3.org/Graphics/JPEG/。
image/jpg
向IE 提供不正确的Content-Type 可能会导致问题,请参阅http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm。
image/jpeg jpeg jpg;image/jpg jpeg jpg;
tl; dr ,“标准”是一堆杂乱无章的杂物;这取决于你问谁!
总体而言,似乎没有MIME类型image/jpg
。但是,实际上,几乎所有软件都可以处理名为“ *.jpg
”的图像文件。
该特定主题令人困惑,因为与MIME类型相关联的文件扩展名的不同关联取决于哪个组织创建了MIME类型的文件扩展名表。换句话说,文件扩展名.jpg
可能有很多不同之处。
例如,这是三个“完整列表”和一个RFC,它们围绕各种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
jpg
没有提到jpeg
→请参阅RFC 2045(没有提及),请参阅RFC 2046 → image/jpeg
13JPEG
→ video/JPEG
jpeg2000
→ video/jpeg2000
jpm
→ image/jpm
(JPEG 2000)jpx
→ image/jpx
(JPEG 2000)vnd.sealedmedia.softseal.jpg
→ image/vnd.sealedmedia.softseal.jpg
这些“完整列表”和RFC没有MIME类型image/jpg
!但是对于MIME类型image/jpeg
某些列表确实具有不同的文件扩展名(.jpeg
,.jpg
,...)。其他列表未提及image/jpeg
。
另外,存在不同类型的JPEG图像格式(例如,渐进式JPEG图像格式,JPEG 2000等)和“ JPEG扩展名”,它们在文件扩展名和声明的MIME类型中可能重叠也可能不重叠。
另一个令人困惑的事情是,RFC 3745似乎与IANA媒体类型不匹配,但是RFC 3745 应该通知IANA媒体类型文档。例如,在RFC 3745中 .jpf
是的首选文件扩展名,image/jpx
但在IANA媒体类型中,名称jpf
不存在(并且IANA文档引用RFC 3745!)。
另一个令人困惑的事情是IANA媒体类型列出了“名称”,但没有列出“文件扩展名”。这是有目的的,但是使将文件扩展名映射到MIME类型的工作变得混乱。
另一个令人困惑的事情是:“ mime ”,“ MIME ”,“ MIME类型 ”,“ mime类型 ”,“ mime / type ”或“ 媒体类型 ”⁉
IANA 最正式的文件似乎不足。没有为文件扩展名注册MIME类型,.jpg
但存在奇数vnd.sealedmedia.softseal.jpg
。文件扩展名.JPEG
仅是一种video
类型,而文件扩展名.jpeg
是一种图像类型(小写字母和大写字母开始变得很重要!!)。与此同时,jpeg2000
为类型video
但RFC 3745考虑JPEG 2000的image
类型!IANA列表似乎符合公司特定的jpeg格式(例如vnd.sealedmedia.softseal.jpg
)。
由于先前的混乱,很难找到一个行业认可的规范文档,该文档将文件扩展名映射到MIME类型,尤其是JPEG图像文件格式。
相关问题“ 映射到文件扩展名的星球上所有MimeTypes的列表? ”。
这里要注意的重要一点是,MIME类型是不一样的文件扩展名。但是,有时它们具有相同的价值。
https://www.iana.org/assignments/media-types/media-types.xhtml包含已注册的Mime类型的列表,尽管没有什么阻止您组成自己的Mime,只要您同时处于发送状态即可和接收端。这是Microsoft出现的地方。
造成混乱的地方是,操作系统通过使用文件名的尾端(称为扩展名)来标识文件类型。在现代操作系统中,整个名称是一个长字符串,但在更原始的操作系统中,它被视为单独的属性。
引起混乱的操作系统是MSDOS,它已将扩展名限制为3个字符。直到今天,这种限制已经在仍以相同方式存储数据的设备(例如SD卡)中继承。
此限制的副作用是某些文件扩展名(例如.gif
匹配其Mime Type)image/gif
,而其他文件扩展名则受到了损害。这包括image/jpeg
其扩展名缩短为.jpg
。即使在解除限制的现代Windows中,Microsoft也永远不会过去,因此文件扩展名仍然是简化版本。
鉴于此:
简短的答案是:
image/jpg
,因此答案是它与image/jpeg
当我们在这里……
旧版Internet Explorer可以自由上传jpeg
Mime Type为的文件image/pjpeg
,这当然意味着其他人需要做更多的工作。他们还将png
文件上传为image/x-png
。
没有,image/jpg
但可以使用.jpg
例
<input type="file" accept=".jpg"/>
来源:https : //developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers