Base64 File Encoder

Zakódujte libovolný soubor do Base64 — PDF, ZIP, obrázky a další

Přetáhněte libovolný soubor sem nebo klikněte pro nahrání

Libovolný typ souboru — PDF, ZIP, obrázky, binární soubory

Co je Base64 kódování souborů?

Base64 kódování souborů převádí binární soubory — PDF, ZIP, obrázky, spustitelné soubory, fonty, zvuk — na prostý ASCII text pomocí abecedy definované v RFC 4648. Každé tři bajty binárního vstupu se přemění na čtyři Base64 znaky, čímž vznikne textová reprezentace, která může procházet kanály určenými výhradně pro text: JSON API payloady, XML dokumenty, těla e-mailů, HTML atributy a proměnné prostředí.

Na rozdíl od kódování textu do Base64 (které pracuje s řetězci) čte kódování souborů do Base64 surový proud bajtů libovolného souboru bez ohledu na jeho formát. Binární hlavičky PDF, komprimované bloky ZIP a pixelová data PNG jsou zpracovány stejně: jako posloupnost oktetů k překódování. Výsledek je vždy platný ASCII, bezpečný pro vložení kamkoli, kde jsou povoleny tisknutelné znaky.

Kompromisem je velikost: výstup Base64 je přibližně o 33 % větší než původní binární soubor. Pro PDF o velikosti 1 MB to znamená přibližně 1,33 MB textu v Base64. Tato režie je cenou za reprezentaci 8-bitových bajtů pomocí 6-bitových znaků a je vlastností samotného kódování — žádná implementace se jí nevyhne. I přes to zůstává Base64 kódování souborů standardní metodou pro vkládání binárních dat do formátů pouze pro text, specifikovanou v MIME (RFC 2045), datových URI (RFC 2397) a JSON Web Tokens (RFC 7519).

Proč používat tento Base64 File Encoder?

Tento nástroj kóduje soubory do Base64 přímo ve vašem prohlížeči pomocí FileReader API. Žádný soubor není nahrán na server — veškerá konverze probíhá na straně klienta v JavaScriptu.

🛡
Zpracování s důrazem na soukromí
Váš soubor nikdy neopustí vaše zařízení. FileReader API načte soubor do paměti lokálně a výstup Base64 je generován výhradně v prohlížeči. Žádný síťový požadavek není odeslán.
Okamžité přetažení
Přetáhněte libovolný soubor na nástroj a okamžitě uvidíte výstup Base64. Žádné čekání na nahrání, žádné průběhové lišty, žádné limity velikosti souborů ze strany serveru.
📁
Libovolný formát souboru
Kódujte PDF, ZIP, obrázky, fonty, zvukové soubory, moduly WebAssembly nebo jakýkoli jiný binární formát. Enkodér zpracovává všechny soubory jako surové proudy bajtů — formát nehraje roli.
🔒
Bez nutnosti účtu
Nástroj použijte okamžitě bez registrace, přihlášení nebo přijímání cookies. Výstup je připraven ke kopírování nebo stažení jako soubor .b64.txt jedním kliknutím.

Případy použití Base64 kódování souborů

Frontend vývojář
Vkládejte malé ikony, fonty nebo SVG přímo do CSS nebo HTML jako datová URI, abyste eliminovali extra HTTP požadavky. Ikona o velikosti 2 KB vložená jako Base64 ušetří síťový zpátečním cestu, která by přidala 50–200 ms latence.
Backend inženýr
Vkládejte přílohy souborů do JSON API payloadů, když transportní protokol nepodporuje multipart nahrávání. Kódujte PDF, sestavy nebo podepsané dokumenty před jejich odesláním jako řetězcová pole v REST nebo GraphQL odpovědích.
DevOps / Infrastruktura
Ukládejte binární konfigurační soubory (TLS certifikáty, SSH klíče, licenční soubory) jako Base64 řetězce v proměnných prostředí, Kubernetes Secrets nebo Terraform tfvars, kde nejsou povoleny surové binární hodnoty.
QA / Test inženýr
Generujte Base64 testovací přípravky pro automatizované testy, které ověřují endpointy pro nahrávání, zpracování e-mailových příloh nebo procesní kanály dokumentů bez správy binárních testovacích souborů ve verzovacím systému.
Datový inženýr
Serializujte binární bloby (metadata Parquet, schémata Protobuf, malé binární prostředky) do Base64 pro ukládání v datových katalozích na bázi JSON, konfiguračních úložištích nebo migračních skriptech.
Student / Začátečník
Sledujte, jak se binární soubory mění na text kódováním malých souborů a prohlížením výstupu. Porovnejte délku Base64 s původní velikostí souboru a ověřte 33% režii popsanou v RFC 4648.

Nárůst velikosti souboru při Base64 kódování

Base64 kódování zvětšuje objem dat přesně o jednu třetinu. Každé 3 vstupní bajty produkují 4 výstupní znaky (každý reprezentuje 6 bitů). Výplňové znaky (=) jsou přidány, když délka vstupu není násobkem 3. Tabulka níže ukazuje vztah mezi původní velikostí souboru a velikostí zakódovaného výstupu.

Velikost souboruPůvodní bajtyBajty Base64Nárůst
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%

Datové URI a přehled MIME typů

Datové URI vkládá obsah souboru přímo do HTML, CSS nebo JavaScriptu ve formátu data:[MIME typ];base64,[zakódovaná data]. MIME typ říká prohlížeči, jak interpretovat dekódované bajty. Níže jsou uvedeny běžné přípony souborů, jejich MIME typy a odpovídající předpony datových URI.

PříponaMIME typPředpona datového URI
.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,...

Ukázky kódu

Tyto spustitelné příklady ukazují, jak načíst binární soubor a zakódovat ho do Base64 v JavaScriptu, Pythonu, Node.js, shellu a Go. Každá ukázka produkuje standardní Base64 (RFC 4648 sekce 4) s výplní.

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)
}

Často kladené otázky

Jaká je maximální velikost souboru, který mohu zakódovat do Base64?
Tento nástroj běží výhradně ve vašem prohlížeči, takže limit závisí na dostupné paměti. Moderní prohlížeče bez problémů zpracují soubory až do 50–100 MB. U souborů větší velikosti použijte nástroj příkazového řádku, například base64 (macOS/Linux) nebo modul base64 v Pythonu, které zpracovávají soubor po částech a nenačítají celý výstup do paměti najednou.
O kolik je výstup Base64 větší než původní soubor?
Výstup Base64 je vždy přibližně o 33,3 % větší než vstup. Konkrétně platí vzorec ceil(n / 3) * 4, kde n je počet vstupních bajtů. Soubor o velikosti 1 MB produkuje přibližně 1,33 MB textu Base64. Tato režie je vlastností kódování a nelze ji snížit.
Mohu soubor zakódovat do Base64 a použít ho jako datové URI?
Ano. Přidejte předponu MIME typu před řetězec Base64: data:application/pdf;base64, a poté zakódovaný obsah. Prohlížeče dekódují a zobrazí datové URI jako by šlo o běžný soubor. Datová URI fungují v atributech img src, link href, CSS url() a anchor download.
Je Base64 kódování souborů totéž co šifrování?
Ne. Base64 je kódování, nikoli šifrování. Transformuje binární data do textové reprezentace, která je triviálně reverzibilní — kdokoli s dekodérem Base64 může obnovit původní soubor. Base64 neposkytuje žádnou důvěrnost, integritu ani autentizaci. Pokud potřebujete chránit obsah souboru, zašifrujte ho nejprve (například pomocí AES-256-GCM), pak zakódujte šifrovaný text Base64 pro přenos.
Proč můj Base64 řetězec končí jedním nebo dvěma znaky =?
Znaky = jsou výplň. Base64 zpracovává vstup ve skupinách po 3 bajtech a produkuje 4 výstupní znaky na skupinu. Když velikost souboru není násobkem 3, jsou přidány jeden nebo dva výplňové znaky, aby délka výstupu byla vždy násobkem 4. Jeden = znamená, že poslední skupina měla 2 bajty; dva == znamenají, že poslední skupina měla 1 bajt.
Jak mohu zakódovat soubor do Base64 z příkazového řádku?
Na macOS a Linuxu použijte příkaz base64: base64 < soubor.pdf > soubor.b64.txt. Na GNU/Linuxu přidejte -w 0 pro potlačení zalamování řádků. Můžete také použít OpenSSL: openssl base64 -in soubor.pdf -out soubor.b64.txt. Ve Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('soubor.pdf')).
Kdy bych měl použít Base64 kódování souborů místo multipart/form-data?
Použijte Base64, když transport vyžaduje formát pouze pro text — JSON API, XML-RPC, proměnné prostředí nebo Kubernetes Secrets. Použijte multipart/form-data při nahrávání souborů přes HTML formuláře nebo REST endpointy, které podporují binární proudy. Multipart je efektivnější, protože se vyhýbá 33% nárůstu velikosti, ale vyžaduje, aby server analyzoval hranice multipart.