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