某些文件使用报告的 MIME 类型上传:
image/x-citrix-pjpeg
它们是有效的 jpeg 文件,我接受它们。
但是我想知道:为什么 MIME 类型不同?
格式有什么区别吗?还是这种 mimetype 是由 citrix 的某个灯泡无缘无故发明的?
某些文件使用报告的 MIME 类型上传:
image/x-citrix-pjpeg
它们是有效的 jpeg 文件,我接受它们。
但是我想知道:为什么 MIME 类型不同?
格式有什么区别吗?还是这种 mimetype 是由 citrix 的某个灯泡无缘无故发明的?
更新:
好的,我对这个问题进行了更多的搜索和测试,结果发现他们都在谎报 MIME 类型(我知道,永远不要相信客户端发送的任何信息)。
我检查了一堆不同编码的文件(用 libjpeg 创建)
Official
jpeg 文件的 MIME 类型:image/jpeg
但是一些应用程序(最显着的是 MS Internet Explorer 和 Yahoo! 邮件)发送 jpeg 文件为image/pjpeg
我以为我知道 pjpeg 代表“渐进式”jpeg。事实证明,渐进式/标准编码与它无关。
MS Internet Explorer 将所有jpeg 文件作为 pjpeg 发送,而不管文件的内容如何。
citrix 也是如此:从 citrix 客户端发送的所有jpeg 文件都报告为image/x-citrix-pjpeg
MIME 类型。
文件本身保持不变(上传前后相同)。那么事实证明,MIME 类型的差异仅表明用于发送文件的软件?
如果文件内容没有差异,为什么人们会发明一种新的 MIME 类型?
image/x-citrix-pjpeg
似乎是从 Citrix 会话导出的图像发送的 MIME 类型。
我没有发现它们与常规 JPEG 之间的任何格式差异——一旦添加了适当的 mime 类型规则,大多数图像转换实用程序将像处理常规 pjpeg 一样处理它们。
可能在 Citrix 会话中,管理 jpeg 时发生了一些内部魔法,导致他们创建了这种 mime 类型,当从他们的系统导出文件时,他们将其留在文件中,但这只是我的猜测。正如我所说,我没有注意到与我们收到的这种格式的偶尔文件有任何实际的格式差异。
我最接近找出这是什么的,是这个线程。希望能帮助到你。
出于某种原因,当人们通过 Citrix 运行 Internet Explorer 时,它会更改 GIF 和 JPG 文件的 mime 类型。
JPG: image/x-citrix-pjpeg
GIF: image/x-citrix-gif
根据我的测试,PNG 文件不受影响。我不知道这是 Internet Explorer 问题还是 Citrix。
这与 Citrix 的一项名为 SpeedBrowse 的功能有关,该功能在 [Citrix] 服务器端的网页中截取 jpeg 和 gif,以便它可以通过 ICA(Citrix 远程协议)将它们全部发送——这比屏幕更有效——刮他们。正如之前的海报所建议的,这是通过使用更改的 mime 类型标记图像来实现的。
IIRC 它在 IE 中挂钩FindMimeFromData以动态更改 mime 类型,但这适用于上传的文件以及下载的文件 - 肯定是一个错误。
据我回忆,渐进式 JPG 格式允许随着文件下载的进行,图像以越来越高的分辨率显示。我并不完全了解细节,但如果你记得在拨号的日子里,有些文件会显示模糊,然后更好,最终在下载时完成。为此,需要以不同于通常发送 JPEG 的顺序发送数据。
实际数据,一旦您查看,是相同的,只是以不同的顺序发送。我忘记了,JPEG编码本身可以很好地对像素进行不同的分组。