Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 是MIME类型';图像/jpg';与'相同;图像/jpeg';?_File_Mime Types - Fatal编程技术网

File 是MIME类型';图像/jpg';与'相同;图像/jpeg';?

File 是MIME类型';图像/jpg';与'相同;图像/jpeg';?,file,mime-types,File,Mime Types,这个问题很简单,但似乎在网上的任何地方都找不到。我正在尝试制作一个程序,根据文件类型将为我提供扩展名。否,image/jpg与image/jpeg不同 您应该使用image/jpeg。只有image/jpeg被识别为jpeg文件的实际mime类型 见 将不正确的内容类型image/jpg提供给IE可能会导致问题,请参阅。对于那些可能有帮助的内容,当我必须处理应用程序上的图像时,我使用它作为参考来定义我的内容类型 它说jpg扩展可以用内容类型声明:image/jpeg 内容类型没有任何image/

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

否,
image/jpg
image/jpeg
不同

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


将不正确的内容类型
image/jpg
提供给IE可能会导致问题,请参阅。

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

它说jpg扩展可以用
内容类型声明:image/jpeg

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

tl;dr这些“标准”是一堆乱七八糟的东西;这取决于你问谁

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

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

  • ()
    • .jfif
      .jfif tbnl
      .jpe
      .jpeg
      .jpg
      → <代码>图像/jpeg
    • .jfif
      .jpe
      .jpeg
      .jpg
      → <代码>图像/pjpeg
  • ()
    • .jpeg
      .jpg
      → <代码>图像/jpeg
    • .jpeg
      .jpg
      → <代码>图像/x-citrix-jpeg
    • .pjpeg
      → <代码>图像/pjpeg
  • 列表()
    (本文档列出的是“名称”,而不是“文件扩展名”)
    • jpg
      未提及
    • jpeg
      → 参见RFC 2045(未提及),参见RFC 2046→ <代码>图像/jpeg
    • JPEG
      → <代码>视频/JPEG
    • jpeg2000
      → <代码>视频/jpeg2000
    • jpm
      → <代码>图像/jpm(JPEG 2000)
    • jpx
      → <代码>图像/jpx(JPEG 2000)
    • vnd.sealedmedia.softseal.jpg
      → <代码>图像/vnd.sealedmedia.softseal.jpg
    • .jpg
      未提及文件扩展名
    • .jpeg
      未提及文件扩展名
    • .jp2
      .jpg2
      → <代码>图像/jp2(JPEG 2000)
    • .jpf
      .jpx
      → <代码>图像/jpx(JPEG 2000 ISO-JPEG2000-2编码图像数据)
    • .mj2
      .mjp2
      → <代码>视频/mj2(运动JPEG 2000)
    • .jpm
      .jpgm
      → <代码>图像/jpm(JPEG 2000配置文件和 扩展)
这些“完整列表”和RFC没有MIME类型
image/jpg
!但是对于MIME类型
image/jpeg
某些列表确实具有不同的文件扩展名(
.jpeg
.jpg
,…)。其他列表没有提到
图像/jpeg

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

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

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


另一件令人困惑的事情:是“mime”,还是“mime类型”,还是“mime类型”,还是“mime/type”,还是“媒体类型”——这里需要注意的重要一点是,mime类型与文件扩展名不同。然而,有时它们具有相同的值

包括一个注册Mime类型的列表,尽管没有什么可以阻止您创建自己的Mime类型,只要您同时处于发送端和接收端。这就是微软在这方面的作用

令人困惑的是,操作系统通过使用文件名的末尾(称为扩展名)来识别文件类型,有自己的方法。在现代操作系统中,整个名称是一个长字符串,但在更原始的操作系统中,它被视为一个单独的属性

造成混乱的操作系统是MSDOS,它将扩展名限制为3个字符。这一限制至今仍存在于SD卡等设备中,这些设备仍然以相同的方式存储数据

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

鉴于:

  • 文件扩展名不是文件类型
  • 历史上,某些操作系统存在严重的文件名限制
  • 一些操作系统将继续并制定自己的规则
  • 简单的回答是: