2010-06-11 15 views
6

Existe una restricción en el sistema de administración de contenido que requiere almacenar todos los documentos Word con extensión específica (diferente de DOC o DOCX). Sin embargo, al enviar el documento al usuario, necesitamos saber si se trata de un archivo DOC o DOCX para proporcionar el tipo MIME correcto.Determine si el documento es DOC o DOCX en la aplicación Java sin conocer su extensión

Entonces, ¿hay alguna forma de averiguar programáticamente si el documento es DOC o DOCX por su contenido?

Respuesta

10

Here es un enlace al ForensicsWiki que detalla muchos tipos de archivos diferentes. Describe los encabezados de los archivos DOC y DOCX, por lo que debería poder analizar los archivos y determinar de qué tipo son.

Mirando el enlace, archivos .doc son compuestos OLE archivos, el archivo debe tener el siguiente encabezado binario:

d0 cf 11 e0 a1 b1 1a e1 

En constraste, archivos .docx tendrá la firma binaria:

50 4b 
+0

Si un archivo docx está protegido por contraseña, también tendrá 'd0 cf 11 e0 a1 b1 1a e1' en el encabezado. – SolidSun

9

Los archivos DOCX están en formato ZIP, en los cuales los primeros dos bytes son las letras PK (después del creador de ZIP, Phil Katz).

+0

Gracias chicos, parece ser bastante claro y fácil – Andriy

Cuestiones relacionadas