使用 Firefox 的 HTTP 内容类型“application/x-itunes-itlp”

Posted

技术标签:

【中文标题】使用 Firefox 的 HTTP 内容类型“application/x-itunes-itlp”【英文标题】:HTTP content type "application/x-itunes-itlp" using Firefox 【发布时间】:2011-07-26 04:15:03 【问题描述】:

我在使用AspUpload(用于在我的网站上实现上传表单)上传 Microsoft Office 2007 文档时遇到问题:

如果我使用 FF3.6 上传 PowerPoint 文档,我会得到一个 ContentType 值“application/x-itunes-itlp”。

当使用 IE8 时,我得到了 ContentType 值“application/vnd.openxmlformats-officedocument.presentationml.presentation”。

这是使用的组件的问题还是Firefox的问题?有人知道吗?

更新:它适用于 Word 2007 文档:FF 和 IE 都提供“application/vnd.openxmlformats-officedocument.wordprocessingml.document”

【问题讨论】:

【参考方案1】:

您根本无法相信浏览器发送的“ContentType”值是正确的。请参阅 section 4.5 of RFC-2388 以了解规范对内容类型的规定。

如果您需要强大的文件类型检测,则需要使用字节嗅探技术来准确确定真实的内容类型。这通常称为读取文件的magic number。此技术允许您独立于用户提供的其他信息来识别文件的格式。

已有很多项目封装了这个任务,包括TrID和Apache Tiki。

【讨论】:

谢谢。 “您将需要使用字节嗅探技术”。比如? @waanders 类似question asked 关于嗅探 .NET 中的文件类型。 (也更新了答案。) 我做了一些实验,发现我的问题是浏览器+操作系统设置。我尝试在两台不同的计算机上上传 FF3.6.16(完全相同的 UA),一台给出“application/x-itunes-itlp”,另一台给出“application/vnd.openxmlformats-officedocument.presentationml.presentation”。感谢您的帮助,我学到的是不要依赖浏览器发送的 ContentType

以上是关于使用 Firefox 的 HTTP 内容类型“application/x-itunes-itlp”的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 避免缓存响应?

内容安全策略正在阻止 Firefox 中的 svg 图标精灵

Firefox 中的“阻止加载混合活动内容”

如何在Firefox中检查预检结果缓存的内容

iframe 内容无法出现在 Firefox 中

使用 php 脚本下载大型 mkv 文件