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.

🛡
Traitement Centré sur la Confidentialité
Ton fichier ne quitte jamais ton appareil. L'API FileReader lit le fichier en mémoire localement, et la sortie Base64 est générée entièrement dans le navigateur. Aucune requête réseau n'est effectuée.
Glisser-Déposer Instantané
Dépose n'importe quel fichier sur l'outil et vois la sortie Base64 immédiatement. Pas d'attente de téléversement, pas de barres de progression, pas de limites de taille de fichier imposées par un serveur.
📁
N'importe Quel Format de Fichier
Encode les PDF, ZIP, images, polices, fichiers audio, modules WebAssembly ou n'importe quel autre format binaire. L'encodeur traite tous les fichiers comme des flux d'octets bruts — le format n'a pas d'importance.
🔒
Aucun Compte Requis
Utilise l'outil immédiatement sans inscription, connexion ou acceptation de cookies. La sortie est prête à copier ou télécharger en tant que fichier .b64.txt d'un seul clic.

Cas d'Utilisation de l'Encodage de Fichiers Base64

Développeur Frontend
Intègre de petites icônes, polices ou SVG directement en CSS ou HTML comme URIs de données pour éliminer les requêtes HTTP supplémentaires. Une icône de 2 KB en ligne sous forme Base64 économise un aller-retour réseau qui ajouterait 50-200 ms de latence.
Ingénieur Backend
Inclure les pièces jointes de fichiers dans les charges utiles API JSON lorsque le protocole de transport ne supporte pas les téléversements multipart. Encode les PDF, rapports ou documents signés avant de les envoyer en tant que champs de chaîne dans les réponses REST ou GraphQL.
DevOps / Infrastructure
Stocke les fichiers de configuration binaires (certificats TLS, clés SSH, fichiers de licence) sous forme de chaînes Base64 dans les variables d'environnement, les Secrets Kubernetes ou les tfvars Terraform où les valeurs binaires brutes ne sont pas autorisées.
QA / Ingénieur de Test
Génère des fixtures de fichiers Base64 pour les tests automatisés qui vérifient les points de terminaison de téléversement, la gestion des pièces jointes d'e-mail ou les pipelines de traitement de documents sans gérer les fichiers de test binaires dans le contrôle de version.
Ingénieur de Données
Sérialise les blobs binaires (métadonnées Parquet, schémas Protobuf, petits actifs binaires) en Base64 pour le stockage dans des catalogues de données basés sur JSON, des magasins de configuration ou des scripts de migration.
Étudiant / Apprenant
Observe comment les fichiers binaires deviennent du texte en encodant de petits fichiers et en inspectant la sortie. Compare la longueur Base64 avec la taille du fichier d'origine pour vérifier le surcoût de 33% décrit dans RFC 4648.

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 FichierOctets BrutsOctets Base64Surcoût
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,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.

ExtensionType MIMEPréfixe d'URI de Données
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata: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.

JavaScript (browser)
// 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
}
Python
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..."
Node.js
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}`
CLI (bash)
# 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
Go
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)
}

Questions Fréquemment Posées

Quelle est la taille maximale de fichier que je peux encoder en Base64 ?
Cet outil s'exécute entièrement dans ton navigateur, donc la limite dépend de la mémoire disponible. Les navigateurs modernes gèrent les fichiers jusqu'à 50-100 MB sans problème. Pour les fichiers plus volumineux, utilise un outil de ligne de commande comme base64 (macOS/Linux) ou le module base64 de Python, qui traitent le fichier en morceaux et ne chargent pas toute la sortie en mémoire à la fois.
Combien plus grande est la sortie Base64 par rapport au fichier original ?
La sortie Base64 est toujours environ 33,3% plus grande que l'entrée. Plus précisément, la formule est ceil(n / 3) * 4, où n est le nombre d'octets d'entrée. Un fichier d'1 MB produit environ 1,33 MB de texte Base64. Ce surcoût est inhérent à l'encodage et ne peut pas être réduit.
Puis-je encoder un fichier en Base64 et l'utiliser comme un URI de données ?
Oui. Préfixe la chaîne Base64 avec le préfixe de type MIME : data:application/pdf;base64, suivi du contenu encodé. Les navigateurs décoderont et rendront l'URI de données comme un fichier normal. Les URIs de données fonctionnent dans img src, link href, CSS url() et les attributs de téléchargement d'ancrage.
L'encodage de fichiers Base64 est-il la même chose que le chiffrement ?
Non. Base64 est un encodage, pas un chiffrement. Il transforme les données binaires en une représentation textuelle trivialement réversible — n'importe qui avec un décodeur Base64 peut récupérer le fichier d'origine. Base64 ne fournit pas de confidentialité, d'intégrité ou d'authentification. Si tu dois protéger le contenu du fichier, chiffre d'abord le fichier (par exemple avec AES-256-GCM), puis encode le chiffre en Base64 pour le transport.
Pourquoi ma chaîne Base64 se termine-t-elle par un ou deux caractères = ?
Les caractères = sont du remplissage. Base64 traite l'entrée par groupes de 3 octets, produisant 4 caractères de sortie par groupe. Lorsque la taille du fichier n'est pas un multiple de 3, un ou deux caractères de remplissage sont ajoutés pour que la longueur de sortie soit toujours un multiple de 4. Un = signifie que le dernier groupe avait 2 octets ; deux == signifie que le dernier groupe avait 1 octet.
Comment encoder un fichier en Base64 à partir de la ligne de commande ?
Sur macOS et Linux, utilise la commande base64 : base64 < file.pdf > file.b64.txt. Sur GNU/Linux, ajoute -w 0 pour supprimer l'enroulement de ligne. Tu peux aussi utiliser OpenSSL : openssl base64 -in file.pdf -out file.b64.txt. Sur Windows PowerShell : [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Quand devrais-je utiliser l'encodage de fichiers Base64 au lieu de multipart/form-data ?
Utilise Base64 lorsque le transport nécessite un format texte uniquement — APIs JSON, XML-RPC, variables d'environnement ou Secrets Kubernetes. Utilise multipart/form-data lors du téléversement de fichiers via des formulaires HTML ou des points de terminaison REST qui supportent les flux binaires. Multipart est plus efficace car il évite le surcoût de taille de 33%, mais cela nécessite que le serveur analyse les limites multiparte.