在Java应用程序中确定文档是DOC还是DOCX而不知道其扩展名

And*_*riy 6 java doc docx

内容管理系统中存在一个约束,该约束要求存储具有特定扩展名的所有单词文档(不同于DOC或DOCX).但是,在向用户输出文档时,我们需要知道它是DOC还是DOCX文件才能提供正确的MIME类型.

那么,有没有办法通过其内容以编程方式找出文档是DOC还是DOCX?

sam*_*moz 11

是ForensicsWiki的链接,其中详细介绍了许多不同的文件类型.它描述了DOC和DOCX文件的标题,因此您应该能够解析文件并确定它们的类型.

查看链接,.doc文件是OLE复合文件,该文件应具有以下二进制标头:

d0 cf 11 e0 a1 b1 1a e1
Run Code Online (Sandbox Code Playgroud)

相反,.docx文件将具有二进制签名:

50 4b
Run Code Online (Sandbox Code Playgroud)


Ric*_*dle 9

DOCX文件是ZIP格式,其中前两个字节是字母PK(在ZIP的创建者之后,Phil Katz).