内容管理系统中存在需要存储具有特定扩展名(与DOC或DOCX不同)的所有Word文档的限制。但是,在向用户输出文档时,为了提供正确的MIME类型,我们需要知道它是DOC还是DOCX文件。确定在Java应用程序中文档是DOC还是DOCX而不知道其扩展名
那么,有没有一种方法可以通过程序的内容找出文档是DOC还是DOCX?
内容管理系统中存在需要存储具有特定扩展名(与DOC或DOCX不同)的所有Word文档的限制。但是,在向用户输出文档时,为了提供正确的MIME类型,我们需要知道它是DOC还是DOCX文件。确定在Java应用程序中文档是DOC还是DOCX而不知道其扩展名
那么,有没有一种方法可以通过程序的内容找出文档是DOC还是DOCX?
Here是ForensicsWiki的一个链接,它详细介绍了很多不同的文件类型。它描述了DOC和DOCX文件的标题,所以你应该能够解析文件并确定它们是什么类型。
综观链接,.doc文件是OLE复合文件,该文件应具有以下二进制头:
d0 cf 11 e0 a1 b1 1a e1
在constrast,.DOCX文件将具有二进制签名:
50 4b
如果一个docx文件受密码保护,那么它也会在标题中包含'd0 cf 11 e0 a1 b1 1a e1'。 – SolidSun 2015-09-03 08:03:14