Encodeur de Fichiers Base64
Encodez n'importe quel fichier en Base64 — PDF, ZIP, images et plus
Déposez n'importe quel fichier ici ou cliquez pour télécharger
Tout type de fichier — PDF, ZIP, images, fichiers binaires
Qu'est-ce que l'Encodage de Fichiers Base64 ?
L'encodage de fichiers Base64 convertit les fichiers binaires — PDF, ZIP, images, exécutables, polices, audio — en texte ASCII simple en utilisant l'alphabet défini en RFC 4648. Chaque trois octets d'entrée binaire deviennent quatre caractères Base64, produisant une représentation textuelle qui peut voyager par des canaux conçus exclusivement pour le texte : charges utiles API JSON, documents XML, corps d'e-mail, attributs HTML et variables d'environnement.
Contrairement à l'encodage texte-vers-Base64 (qui fonctionne sur des chaînes), l'encodage fichier-vers-Base64 lit le flux brut d'octets de n'importe quel fichier quel que soit son format. Les en-têtes binaires d'un PDF, les blocs comprimés d'un ZIP et les données de pixels d'un PNG sont tous traités de manière identique : comme une séquence d'octets à ré-encoder. Le résultat est toujours du ASCII valide, sûr à incorporer n'importe où acceptant les caractères imprimables.
Le compromis est la taille : la sortie Base64 est environ 33% plus grande que le binaire original. Pour un PDF d'1 MB, cela signifie environ 1,33 MB de texte Base64. Ce surcoût est inhérent à l'encodage et aucune implémentation ne peut l'éviter. Malgré cela, l'encodage de fichiers Base64 reste la méthode standard pour intégrer des données binaires dans des formats texte uniquement, spécifiée dans MIME (RFC 2045), URIs de données (RFC 2397) et JSON Web Tokens (RFC 7519).
Pourquoi Utiliser cet Encodeur de Fichiers Base64 ?
Cet outil encode les fichiers en Base64 directement dans ton navigateur en utilisant l'API FileReader. Aucun fichier n'est téléchargé vers un serveur — toute la conversion se fait côté client en JavaScript.
Cas d'Utilisation de l'Encodage de Fichiers Base64
Surcoût de Taille de Fichiers Base64
L'encodage Base64 augmente la taille des données d'exactement un tiers. Chaque 3 octets d'entrée produisent 4 caractères de sortie (chacun représentant 6 bits). Les caractères de remplissage (=) sont ajoutés lorsque la longueur d'entrée n'est pas un multiple de 3. Le tableau ci-dessous montre la relation entre la taille du fichier d'origine et la taille de sortie encodée.
| Taille de Fichier | Octets Bruts | Octets Base64 | Surcoût |
|---|---|---|---|
| 1 KB | 1,024 B | 1,368 B | +33.3% |
| 10 KB | 10,240 B | 13,656 B | +33.4% |
| 100 KB | 102,400 B | 136,536 B | +33.3% |
| 1 MB | 1,048,576 B | 1,398,104 B | +33.3% |
| 5 MB | 5,242,880 B | 6,990,508 B | +33.3% |
| 10 MB | 10,485,760 B | 13,981,016 B | +33.3% |
Référence des URIs de Données et Types MIME
Un URI de données intègre le contenu des fichiers directement en HTML, CSS ou JavaScript en utilisant le format data:[type MIME];base64,[données encodées]. Le type MIME indique au navigateur comment interpréter les octets décodés. Ci-dessous se trouvent les extensions de fichiers courantes, leurs types MIME et le préfixe d'URI de données correspondant.
| Extension | Type MIME | Préfixe d'URI de Données |
|---|---|---|
| application/pdf | data:application/pdf;base64,... | |
| .zip | application/zip | data:application/zip;base64,... |
| .png | image/png | data:image/png;base64,... |
| .jpg | image/jpeg | data:image/jpeg;base64,... |
| .gif | image/gif | data:image/gif;base64,... |
| .svg | image/svg+xml | data:image/svg+xml;base64,... |
| .woff2 | font/woff2 | data:font/woff2;base64,... |
| .mp3 | audio/mpeg | data:audio/mpeg;base64,... |
| .wasm | application/wasm | data:application/wasm;base64,... |
| .bin | application/octet-stream | data:application/octet-stream;base64,... |
Exemples de Code
Ces exemples exécutables montrent comment lire un fichier binaire et l'encoder en Base64 en JavaScript, Python, Node.js, bash et Go. Chaque extrait produit du Base64 standard (RFC 4648 Section 4) avec remplissage.
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
const file = e.target.files[0]
const reader = new FileReader()
reader.onload = () => {
const base64 = reader.result.split(',')[1]
console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
}
reader.readAsDataURL(file)
})
// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
const buffer = await blob.arrayBuffer()
const bytes = new Uint8Array(buffer)
let binary = ''
bytes.forEach(b => binary += String.fromCharCode(b))
return btoa(binary) // → standard Base64 string
}import base64
from pathlib import Path
# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40]) # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."
# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)
# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60]) # → "data:application/pdf;base64,JVBERi0xLj..."import { readFileSync, writeFileSync } from 'fs'
// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)
// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)
// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`# Encode a file to Base64 (macOS / Linux) base64 < document.pdf > document.b64.txt # Encode with no line wrapping (GNU coreutils) base64 -w 0 < document.pdf > document.b64.txt # Encode and copy to clipboard (macOS) base64 < image.png | pbcopy # Encode with OpenSSL (available everywhere) openssl base64 -in archive.zip -out archive.b64.txt # Pipe directly into curl for API upload base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
package main
import (
"encoding/base64"
"fmt"
"os"
)
func main() {
data, err := os.ReadFile("document.pdf")
if err != nil {
panic(err)
}
encoded := base64.StdEncoding.EncodeToString(data)
fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)
// Write to file
os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}