Base64 File Encoder
Codeer elk bestand naar Base64 — PDF, ZIP, afbeeldingen en meer
Sleep een bestand hierheen of klik om te uploaden
Elk bestandstype — PDF, ZIP, afbeeldingen, binaire bestanden
Wat is Base64-bestandscodering?
Base64-bestandscodering converteert binaire bestanden — PDF's, ZIP's, afbeeldingen, executables, lettertypen, audio — naar gewone ASCII-tekst met behulp van het alfabet dat in RFC 4648 is gedefinieerd. Elke drie bytes binaire invoer worden vier Base64-tekens, waardoor een tekstrepresentatie ontstaat die kan reizen via kanalen die uitsluitend voor tekst zijn ontworpen: JSON API-payloads, XML-documenten, e-mailbody's, HTML-attributen en omgevingsvariabelen.
In tegenstelling tot tekst-naar-Base64-codering (die op strings werkt) leest bestand-naar-Base64-codering de ruwe bytestream van elk bestand ongeacht de indeling. De binaire headers van een PDF, de gecomprimeerde blokken van een ZIP en de pixelgegevens van een PNG worden allemaal identiek behandeld: als een reeks octetten om opnieuw te coderen. Het resultaat is altijd geldige ASCII, veilig om in te sluiten overal waar afdrukkabele tekens acceptabel zijn.
Het compromis is grootte: Base64-uitvoer is ongeveer 33% groter dan het originele binaire bestand. Voor een PDF van 1 MB betekent dit ongeveer 1,33 MB Base64-tekst. Deze overhead is inherent aan codering en geen implementatie kan deze voorkomen. Desondanks blijft Base64-bestandscodering de standaardmethode voor het inbedden van binaire gegevens in tekstenige formaten, gespecificeerd in MIME (RFC 2045), gegevens-URI's (RFC 2397) en JSON Web Tokens (RFC 7519).
Waarom deze Base64-bestandsencoder gebruiken?
Deze tool codeert bestanden naar Base64 rechtstreeks in uw browser met behulp van de FileReader API. Geen bestand wordt naar een server geüpload — de gehele conversie vindt client-side plaats in JavaScript.
Base64-bestandscodeeringsgebruik
Base64-bestandsgrootteoverhead
Base64-codering vergroot de gegevensgrootte met exact één derde. Elke 3 invoerbytes produceren 4 uitvoertekens (elk vertegenwoordigt 6 bits). Opvulkarakters (=) worden toegevoegd wanneer de invoerlengte geen veelvoud van 3 is. Onderstaande tabel toont de relatie tussen oorspronkelijke bestandsgrootte en gecodeerde uitvoergrootte.
| Bestandsgrootte | Onbewerkte bytes | Base64 bytes | Overhead |
|---|---|---|---|
| 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% |
Verwijzing gegevens-URI en MIME-type
Een gegevens-URI sluit bestandsinhoud rechtstreeks in HTML, CSS of JavaScript in met behulp van de indeling data:[MIME-type];base64,[gecodeerde gegevens]. Het MIME-type vertelt de browser hoe de gedecodeerde bytes moeten worden geïnterpreteerd. Hieronder staan veel voorkomende bestandsextensies, hun MIME-typen en het bijbehorende gegevens-URI-voorvoegsel.
| Extensie | MIME-type | Gegevens-URI-voorvoegsel |
|---|---|---|
| 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,... |
Codevoorbeelden
Deze uitvoerbare voorbeelden tonen hoe u een binair bestand leest en naar Base64 codeert in JavaScript, Python, Node.js, bash en Go. Elk fragment produceert standaard Base64 (RFC 4648 Sectie 4) met opvulling.
// 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)
}