Cómo convertir un documento Word a Base64
- Suelta un archivo
.docxo.docen el recuadro o elígelo con el selector de archivos. Puedes poner varios a la vez. - Salida como empieza en Base64 simple. JSON lo envuelve con el nombre del archivo, el tipo MIME y el tamaño; HTML
<a download>crea un enlace de descarga. - Marca Ajustar a 76 solo para un email MIME construido a mano.
- Copiar salida.
Guarda el documento antes de codificarlo. La herramienta lee el archivo tal como está en el disco, así que los cambios que sigan abiertos en Word no se incluyen.
DOCX o DOC: mira los primeros caracteres
| Archivo | Qué es | El Base64 empieza por |
|---|---|---|
.docx | contenedor ZIP con partes XML | UEsDB |
.docm (con macros) | el mismo contenedor ZIP | UEsDB |
.doc | Compound File Binary (OLE2) | 0M8R4KGxGuE |
.docx cifrado | paquete cifrado dentro de un archivo compuesto | 0M8R4KGxGuE |
Si un servicio rechaza tu «DOCX» como no válido y el Base64 empieza por 0M8R4KGxGuE, estás enviando un .doc antiguo renombrado a .docx o un archivo protegido con contraseña. Si empieza por JVBERi0, alguien guardó un PDF con nombre .docx. PCFET0NUWVBF o PGh0bWw significan HTML, a menudo una descarga que devolvió una página de error.
Adónde van los archivos Word en Base64
- Las API de firma electrónica y de generación de documentos reciben el documento en Base64 dentro de un cuerpo JSON, junto con un nombre de archivo y un tipo MIME, y a menudo devuelven del mismo modo un documento rellenado o firmado.
- Las API de email transaccional aceptan adjuntos como cadenas Base64 en JSON. La versión MIME en bruto de lo mismo usa líneas de 76 caracteres; consulta Base64 en el email.
- Los servicios de conversión que pasan DOCX a PDF aceptan el archivo de origen en línea cuando es pequeño.
Base64 es un formato de transporte y no protege nada: cualquiera que intercepte la cadena puede decodificar el documento con Base64 a Word. Para archivos confidenciales, confía en TLS y en el control de acceso, o cifra el documento. Consulta codificación frente a cifrado.
Codificar un DOCX en PHP
<?php
$path = 'contract.docx';
$payload = json_encode([
'filename' => basename($path),
'contentType' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'content' => base64_encode(file_get_contents($path)),
], JSON_UNESCAPED_SLASHES);
Sin JSON_UNESCAPED_SLASHES, PHP escribe cada / del Base64 como \/. Es JSON válido y se decodifica bien, pero alarga la cadena y rompe las comparaciones de texto ingenuas. Los nombres de las claves son ejemplos; usa los que pida tu API. Más en Base64 en PHP.
Con los archivos Excel se hace lo mismo, con otro tipo MIME; consulta Excel a Base64. Si el receptor admite PDF, PDF a Base64 evita las diferencias de maquetación entre versiones de Word.
Preguntas frecuentes
¿Qué tipo MIME corresponde a un DOCX en Base64?
application/vnd.openxmlformats-officedocument.wordprocessingml.document. El formato antiguo .doc es application/msword. Las API suelen pedir el tipo en un campo aparte, y algunas lo usan para elegir un conversor.
¿Por qué el Base64 de mi DOCX empieza por UEsDB?
Un DOCX es un archivo ZIP de ficheros XML, y todo ZIP empieza por PK\x03\x04, que en Base64 es UEsDB. Un .doc binario antiguo empieza en cambio por 0M8R4KGxGuE.
Mi DOCX protegido con contraseña empieza por 0M8R4KGxGuE. ¿Está roto?
No. Cuando Word cifra un DOCX, guarda el paquete cifrado dentro del contenedor de archivo compuesto antiguo, así que recibe el encabezado al estilo de .doc. El archivo está bien; el receptor necesita la contraseña para abrirlo.