Comment convertir un document Word en Base64
- Déposez un fichier
.docxou.docdans la zone ou choisissez-le avec le sélecteur de fichiers. Plusieurs fichiers à la fois, pas de problème. - Sortie en démarre sur Base64 brut. JSON l’enveloppe avec le nom du fichier, le type MIME et la taille ; HTML
<a download>crée un lien de téléchargement. - Ne cochez Couper à 76 que pour un e-mail MIME construit à la main.
- Copier la sortie.
Enregistrez le document avant de l’encoder. L’outil lit le fichier tel qu’il est sur le disque : les modifications encore ouvertes dans Word ne sont pas incluses.
DOCX ou DOC : vérifiez les premiers caractères
| Fichier | Ce que c’est | Le Base64 commence par |
|---|---|---|
.docx | conteneur ZIP avec des parties XML | UEsDB |
.docm (avec macros) | même conteneur ZIP | UEsDB |
.doc | Compound File Binary (OLE2) | 0M8R4KGxGuE |
.docx chiffré | paquet chiffré dans un fichier composé | 0M8R4KGxGuE |
Si un service rejette votre « DOCX » comme non valide et que le Base64 commence par 0M8R4KGxGuE, vous envoyez soit un ancien .doc renommé en .docx, soit un fichier protégé par mot de passe. S’il commence par JVBERi0, quelqu’un a enregistré un PDF sous un nom .docx. PCFET0NUWVBF ou PGh0bWw signifie du HTML, souvent un téléchargement qui a renvoyé une page d’erreur.
Où vont les fichiers Word en Base64
- Les API de signature électronique et de génération de documents prennent le document en Base64 dans un corps JSON, avec un nom de fichier et un type MIME, et renvoient souvent de la même façon un document rempli ou signé.
- Les API d’e-mails transactionnels acceptent les pièces jointes sous forme de chaînes Base64 dans du JSON. La version MIME brute de la même chose utilise des lignes de 76 caractères ; voir Base64 dans les e-mails.
- Les services de conversion qui transforment un DOCX en PDF acceptent le fichier source inline quand il est petit.
Base64 est un format de transport et ne protège rien : quiconque intercepte la chaîne peut décoder le document avec Base64 en Word. Pour les fichiers confidentiels, comptez sur TLS et le contrôle d’accès, ou chiffrez le document. Voir encodage et chiffrement.
Encoder 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);
Sans JSON_UNESCAPED_SLASHES, PHP écrit chaque / du Base64 sous la forme \/. C’est du JSON valide qui se décode correctement, mais la chaîne s’allonge et les comparaisons de texte naïves échouent. Les noms de clés sont des exemples, à remplacer par ceux de votre API. Plus de détails dans Base64 en PHP.
Pour les fichiers Excel, la même approche s’applique avec un autre type MIME ; voir Excel en Base64. Si le destinataire accepte le PDF, PDF en Base64 évite les différences de mise en page entre versions de Word.
FAQ
Quel type MIME associer à un DOCX en Base64 ?
application/vnd.openxmlformats-officedocument.wordprocessingml.document. L’ancien format .doc correspond à application/msword. Les API demandent souvent le type dans un champ séparé, et certaines s’en servent pour choisir un convertisseur.
Pourquoi le Base64 de mon DOCX commence-t-il par UEsDB ?
Un DOCX est une archive ZIP de fichiers XML, et tout ZIP commence par PK\x03\x04, soit UEsDB en Base64. Un ancien .doc binaire commence plutôt par 0M8R4KGxGuE.
Mon DOCX protégé par mot de passe commence par 0M8R4KGxGuE. Est-il cassé ?
Non. Quand Word chiffre un DOCX, il stocke le paquet chiffré dans l’ancien conteneur de fichier composé : il reçoit donc l’en-tête de style .doc. Le fichier est intact ; le destinataire a besoin du mot de passe pour l’ouvrir.