Koder Plików Base64

Koduj dowolny plik do Base64 — PDF, ZIP, obrazy i więcej

Przeciągnij dowolny plik tutaj lub kliknij, aby przesłać

Dowolny typ pliku — PDF, ZIP, obrazy, pliki binarne

Czym Jest Kodowanie Plików Base64?

Kodowanie plików Base64 konwertuje pliki binarne — PDF, ZIP, obrazy, pliki wykonywalne, czcionki, audio — na zwykły tekst ASCII przy użyciu alfabetu zdefiniowanego w RFC 4648. Każde trzy bajty danych binarnych wejścia stają się czterema znakami Base64, tworząc reprezentację tekstową, która może być przesyłana przez kanały przeznaczone wyłącznie dla tekstu: ładunki API JSON, dokumenty XML, treść poczty elektronicznej, atrybuty HTML i zmienne środowiskowe.

W przeciwieństwie do kodowania tekstu do Base64 (które działa na ciągach), kodowanie pliku do Base64 odczytuje surowy strumień bajtów dowolnego pliku niezależnie od jego formatu. Nagłówki binarne PDF, skompresowane bloki ZIP i dane pikseli PNG są traktowane identycznie: jako sekwencja oktetów do ponownego kodowania. Wynik jest zawsze prawidłowym ASCII, bezpiecznym do osadzenia wszędzie tam, gdzie akceptowane są znaki drukowalne.

Kompromisem jest rozmiar: wyjście Base64 jest około 33% większe niż oryginalne dane binarne. W przypadku pliku PDF o rozmiarze 1 MB oznacza to około 1,33 MB tekstu Base64. Ten narzut jest nieodłączny od kodowania i żadna implementacja nie może go uniknąć. Mimo to kodowanie plików Base64 pozostaje standardową metodą osadzania danych binarnych w formatach tylko tekstowych, określoną w MIME (RFC 2045), URI danych (RFC 2397) i JSON Web Tokens (RFC 7519).

Dlaczego Używać tego Kodera Plików Base64?

To narzędzie koduje pliki do Base64 bezpośrednio w twojej przeglądarce za pomocą interfejsu API FileReader. Żaden plik nie jest przesyłany na serwer — cała konwersja odbywa się po stronie klienta w JavaScript.

🛡
Przetwarzanie Skoncentrowane na Prywatności
Twój plik nigdy nie opuszcza twojego urządzenia. Interfejs API FileReader odczytuje plik do pamięci lokalnie, a wyjście Base64 jest generowane całkowicie w przeglądarce. Żaden wniosek sieciowy nie jest składany.
Natychmiastowe Przeciąganie i Upuszczanie
Przeciągnij dowolny plik na narzędzie i natychmiast zobacz wyjście Base64. Bez czekania na przesyłanie, bez pasków postępu, bez limitów rozmiaru pliku narzuconych przez serwer.
📁
Dowolny Format Pliku
Koduj pliki PDF, ZIP, obrazy, czcionki, pliki audio, moduły WebAssembly lub dowolny inny format binarny. Koder traktuje wszystkie pliki jako surowe strumienie bajtów — format nie ma znaczenia.
🔒
Konto Nie Wymagane
Użyj narzędzia natychmiast bez rejestracji, logowania lub akceptowania plików cookie. Wyjście jest gotowe do skopiowania lub pobrania jako plik .b64.txt jednym kliknięciem.

Przypadki Użycia Kodowania Plików Base64

Programista Frontend
Osadzaj małe ikony, czcionki lub SVG bezpośrednio w CSS lub HTML jako URI danych, aby wyeliminować dodatkowe żądania HTTP. Ikona 2 KB w linii jako Base64 oszczędza ścieżkę sieciową, która dodałaby 50-200 ms opóźnienia.
Inżynier Backend
Dołączaj załączniki plików do ładunków API JSON, gdy protokół transportu nie obsługuje przesyłań multipart. Koduj pliki PDF, raporty lub podpisane dokumenty przed wysłaniem ich jako pola ciągu w odpowiedziach REST lub GraphQL.
DevOps / Infrastruktura
Przechowuj pliki konfiguracji binarne (certyfikaty TLS, klucze SSH, pliki licencji) jako ciągi Base64 w zmiennych środowiskowych, Tajemnicach Kubernetes lub Terraform tfvars, gdzie niedozwolone są surowe wartości binarne.
Tester QA / Inżynier
Generuj urządzenia testowe plików Base64 dla testów automatycznych, które weryfikują punkty końcowe przesyłania, obsługę załączników poczty e-mail lub potoki przetwarzania dokumentów bez zarządzania binarnymi plikami testowymi w kontroli wersji.
Inżynier Danych
Serializuj binarne obiekty blob (metadane Parquet, schematy Protobuf, małe zasoby binarne) do Base64 do przechowywania w katalogach danych opartych na JSON, magazynach konfiguracyjnych lub skryptach migracji.
Uczeń / Learner
Obserwuj, jak pliki binarne stają się tekstem, kodując małe pliki i sprawdzając wyjście. Porównaj długość Base64 z rozmiarem oryginalnego pliku, aby zweryfikować narzut 33% opisany w RFC 4648.

Narzut Rozmiaru Pliku Base64

Kodowanie Base64 zwiększa rozmiar danych dokładnie o jedną trzecią. Każde 3 bajty wejścia tworzą 4 znaki wyjścia (każdy reprezentujący 6 bitów). Znaki dopełnienia (=) są dodawane, gdy długość wejścia nie jest wielokrotnością 3. Poniższa tabela pokazuje relację między rozmiarem oryginalnego pliku a rozmiarem zakodowanego wyjścia.

Rozmiar PlikuBajty SuroweBajty Base64Narzut
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%

Odnośnik do URI Danych i Typu MIME

URI danych osadza zawartość pliku bezpośrednio w HTML, CSS lub JavaScript przy użyciu formatu data:[typ MIME];base64,[zakodowane dane]. Typ MIME mówi przeglądarce, jak interpretować zdekodowane bajty. Poniżej znajdują się wspólne rozszerzenia plików, ich typy MIME i odpowiadający im prefiks URI danych.

RozszerzenieTyp MIMEPrefiks URI Danych
.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,...

Przykłady Kodu

Te wykonalne przykłady pokazują, jak czytać plik binarny i kodować go do Base64 w JavaScript, Python, Node.js, bash i Go. Każdy fragment tworzy standardowy Base64 (RFC 4648 Sekcja 4) z dopełnieniem.

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

Często Zadawane Pytania

Jaki jest maksymalny rozmiar pliku, który mogę zakodować do Base64?
To narzędzie działa całkowicie w twojej przeglądarce, więc limit zależy od dostępnej pamięci. Nowoczesne przeglądarki bez problemu obsługują pliki do 50-100 MB. W przypadku większych plików użyj narzędzia wiersza polecenia, takiego jak base64 (macOS/Linux) lub modułu base64 Python, które przetwarzają plik w kawałkach i nie ładują całego wyjścia do pamięci naraz.
O ile większe jest wyjście Base64 w porównaniu z oryginalnym plikiem?
Wyjście Base64 jest zawsze około 33,3% większe niż wejście. Dokładniej, formuła to ceil(n / 3) * 4, gdzie n to liczba bajtów wejścia. Plik 1 MB produkuje około 1,33 MB tekstu Base64. Ten narzut jest nieodłączny od kodowania i nie można go zmniejszyć.
Czy mogę zakodować plik do Base64 i użyć go jako URI danych?
Tak. Przedruk prefiksu typu MIME do ciągu Base64: data:application/pdf;base64, po którym następuje zakodowana zawartość. Przeglądarki dekodują i renderują URI danych jak zwykły plik. URI danych działają w img src, link href, CSS url() i atrybutach pobierania kotwicy.
Czy kodowanie plików Base64 to to samo co szyfrowanie?
Nie. Base64 to kodowanie, a nie szyfrowanie. Przekształca dane binarne w trywialnie odwracalną reprezentację tekstową — każdy z dekoderem Base64 może odzyskać oryginalny plik. Base64 nie zapewnia poufności, integralności ani autentyczności. Jeśli chcesz chronić zawartość pliku, najpierw zaszyfruj plik (na przykład za pomocą AES-256-GCM), a następnie zakoduj zaszyfrowany tekst do Base64 do transportu.
Dlaczego mój ciąg Base64 kończy się jednym lub dwoma znakami =?
Znaki = to dopełnienie. Base64 przetwarza wejście w grupach 3 bajtów, tworząc 4 znaki wyjścia na grupę. Gdy rozmiar pliku nie jest wielokrotnością 3, dodawane są jeden lub dwa znaki dopełnienia, aby długość wyjścia była zawsze wielokrotnością 4. Jeden = oznacza, że ostatnia grupa miała 2 bajty; dwa == oznacza, że ostatnia grupa miała 1 bajt.
Jak zakodować plik do Base64 z wiersza polecenia?
Na macOS i Linux użyj polecenia base64: base64 < file.pdf > file.b64.txt. Na GNU/Linux dodaj -w 0, aby pominąć zawijanie linii. Możesz również użyć OpenSSL: openssl base64 -in file.pdf -out file.b64.txt. Na Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Kiedy powinienem użyć kodowania plików Base64 zamiast multipart/form-data?
Użyj Base64, gdy transport wymaga formatu tylko tekstowego — API JSON, XML-RPC, zmienne środowiskowe lub Tajemnice Kubernetes. Użyj multipart/form-data podczas przesyłania plików za pośrednictwem formularzy HTML lub punktów końcowych REST, które obsługują strumienie binarne. Multipart jest bardziej wydajny, ponieważ unika 33% narzutu rozmiaru, ale wymaga od serwera analizy granic multipart.