【发布时间】:2008-10-14 12:16:49
【问题描述】:
某些文件是使用报告的 MIME 类型上传的:
image/x-citrix-pjpeg
它们是有效的 jpeg 文件,我接受它们。
但我想知道:为什么 MIME 类型不同?
格式有什么区别吗?还是这种 mimetype 是 citrix 的某个灯泡无缘无故发明的?
【问题讨论】:
标签: jpeg mime-types citrix
某些文件是使用报告的 MIME 类型上传的:
image/x-citrix-pjpeg
它们是有效的 jpeg 文件,我接受它们。
但我想知道:为什么 MIME 类型不同?
格式有什么区别吗?还是这种 mimetype 是 citrix 的某个灯泡无缘无故发明的?
【问题讨论】:
标签: jpeg mime-types citrix
更新:
好的,我对这个问题进行了更多搜索和测试,结果发现他们都在谎报 MIME 类型(我知道,永远不要相信客户端发送的任何信息)。
我检查了一堆不同编码的文件(使用 libjpeg 创建)
Officialjpeg 文件的 MIME 类型:image/jpeg
但有些应用程序(最显着的是 MS Internet Explorers 和 Yahoo! 邮件)发送 jpeg 文件为 image/pjpeg
我以为我知道 pjpeg 代表“渐进式”jpeg。事实证明,渐进式/标准编码与它无关。
MS Internet Explorer 以 pjpeg 格式发送 所有 jpeg 文件,而不管文件的内容如何。
对于 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 编码本身可以很好地对像素进行不同的分组,我忘记了。
【讨论】: