Codificatore di File Base64
Codifica qualsiasi file in Base64 — PDF, ZIP, immagini e altro
Trascina qualsiasi file qui o fai clic per caricare
Qualsiasi tipo di file — PDF, ZIP, immagini, file binari
Che cos'è la Codificazione di File Base64?
La codificazione di file Base64 converte file binari — PDF, ZIP, immagini, eseguibili, caratteri, audio — in testo ASCII semplice usando l'alfabeto definito in RFC 4648. Ogni tre byte di input binario diventano quattro caratteri Base64, producendo una rappresentazione testuale che può viaggiare attraverso canali progettati esclusivamente per il testo: payload API JSON, documenti XML, corpi di email, attributi HTML e variabili di ambiente.
A differenza della codificazione testo-verso-Base64 (che funziona su stringhe), la codificazione file-verso-Base64 legge il flusso di byte grezzo di qualsiasi file indipendentemente dal suo formato. Gli header binari di un PDF, i blocchi compressi di un ZIP e i dati dei pixel di un PNG vengono tutti trattati in modo identico: come una sequenza di ottetti da ricodificare. Il risultato è sempre ASCII valido, sicuro da incorporare ovunque vengono accettati i caratteri stampabili.
Il compromesso è la dimensione: l'output Base64 è circa il 33% più grande del binario originale. Per un PDF da 1 MB, questo significa circa 1,33 MB di testo Base64. Questo overhead è intrinseco alla codificazione e nessuna implementazione può evitarlo. Nonostante ciò, la codificazione di file Base64 rimane il metodo standard per incorporare dati binari in formati solo testo, specificato in MIME (RFC 2045), URI di dati (RFC 2397) e JSON Web Tokens (RFC 7519).
Perché Utilizzare questo Codificatore di File Base64?
Questo strumento codifica i file in Base64 direttamente nel tuo browser usando l'API FileReader. Nessun file viene caricato su un server — l'intera conversione avviene lato client in JavaScript.
Casi d'Uso della Codificazione di File Base64
Overhead della Dimensione del File Base64
La codificazione Base64 aumenta la dimensione dei dati esattamente di un terzo. Ogni 3 byte di input producono 4 caratteri di output (ognuno rappresentante 6 bit). I caratteri di padding (=) vengono aggiunti quando la lunghezza di input non è un multiplo di 3. La tabella sottostante mostra la relazione tra la dimensione del file originale e la dimensione dell'output codificato.
| Dimensione del File | Byte Grezzi | Byte Base64 | 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% |
Riferimento dell'URI di Dati e Tipo MIME
Un URI di dati incorpora il contenuto del file direttamente in HTML, CSS o JavaScript usando il formato data:[tipo MIME];base64,[dati codificati]. Il tipo MIME dice al browser come interpretare i byte decodificati. Di seguito sono le estensioni di file comuni, i loro tipi MIME e il prefisso URI di dati corrispondente.
| Estensione | Tipo MIME | Prefisso URI di Dati |
|---|---|---|
| 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,... |
Esempi di Codice
Questi esempi eseguibili mostrano come leggere un file binario e codificarlo in Base64 in JavaScript, Python, Node.js, bash e Go. Ogni frammento produce Base64 standard (RFC 4648 Sezione 4) con padding.
// 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)
}