使用 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”的主要内容,如果未能解决你的问题,请参考以下文章