Konwerter Base64 na plik

Wklej ciąg Base64 lub data URI, aby odtworzyć oryginalny plik. Narzędzie rozpoznaje format po pierwszych bajtach, w miarę możliwości pokazuje podgląd i zapisuje plik z właściwym rozszerzeniem.

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wklej ciąg Base64 lub pełny data URI w pole wejściowe. Spacje i podziały wierszy nie mają znaczenia.
  2. Sprawdź wykryty typ i rozmiar pliku. Obrazy, pliki PDF, audio, wideo i tekst są wyświetlane w podglądzie.
  3. Pobierz plik. Zostanie zapisany z nazwą i rozszerzeniem odpowiadającymi wykrytemu typowi.

Jak wykrywany jest typ pliku

Tekst Base64 przenosi bajty, a nie nazwę pliku. Jeśli nie wklejasz data URI z typem MIME, nic w ciągu nie mówi, czy zawiera on plik PDF, archiwum ZIP, czy dźwięk. Dlatego narzędzie dekoduje dane i sprawdza kilka pierwszych bajtów, czyli sygnaturę pliku, tzw. „magiczne bajty”, które większość formatów umieszcza na samym początku. Ponieważ te bajty są stałe, tekst Base64 każdego formatu również zaczyna się w rozpoznawalny sposób:

FormatPierwsze bajtyPoczątek Base64
PDF%PDFJVBER
PNG89 50 4E 47iVBORw0KGgo
JPEGFF D8 FF/9j/
GIFGIF8R0lGOD
ZIP (także DOCX, XLSX, JAR)PK 03 04UEsDB
MP3 ze znacznikiem ID3ID3SUQz
WAV, WebP, AVI (RIFF)RIFFUklGR

Gdy zdekodowany plik się nie otwiera

Dekodowanie Base64 jest bezstratne, więc uszkodzony plik prawie zawsze oznacza, że dane wejściowe nie były tym, czego się spodziewano. Sprawdź kolejno te przyczyny:

  • Obcięte dane wejściowe. Pliki dziennika, terminale, komórki arkuszy kalkulacyjnych i komunikatory często ucinają długie ciągi. Brak tekstu na końcu daje zbyt krótki plik, którego większość formatów nie pozwala wtedy otworzyć. Jeśli znasz oryginalny rozmiar, porównaj go z rozmiarem po dekodowaniu.
  • Dodatkowe znaki. Cudzysłowy, przecinki lub nazwa pola skopiowane razem z wartością albo sekwencje ucieczki z ciągu JSON, takie jak \/ i \n, nie należą do Base64. Kopiuj wyłącznie samą wartość.
  • Inne kodowanie lub wariant. Hex, Base32, Base85 lub własny alfabet mogą na pierwszy rzut oka wyglądać podobnie, ale po zdekodowaniu jako Base64 dają bezużyteczne dane. Wykrywacz kodowania próbuje każdego dekodera i pokazuje, który pasuje.
  • To w ogóle nie jest plik. Jeśli wynik zostaje rozpoznany jako zwykły tekst, ciąg był zakodowanym w Base64 tekstem: JSON-em, tokenem lub kolejną warstwą Base64. Odczytaj go za pomocą dekodera Base64 i zdekoduj jeszcze raz, jeśli wynik znowu jest w Base64.

Walidator Base64 wskazuje nieprawidłowe znaki wraz z ich pozycjami i zgłasza problemy z dopełnieniem, co pomaga zlokalizować uszkodzony fragment.

Dekodowanie Base64 do pliku w kodzie

# Python
import base64
with open('output.bin', 'wb') as f:
    f.write(base64.b64decode(data))

// Node.js
fs.writeFileSync('output.bin', Buffer.from(data, 'base64'));

# Linux
base64 -d input.txt > output.bin

# macOS
base64 -D -i input.txt -o output.bin

# Windows PowerShell
[IO.File]::WriteAllBytes("C:\files\output.bin", [Convert]::FromBase64String((Get-Content input.txt -Raw)))

Najczęściej zadawane pytania

Jakie typy plików mogą zostać wykryte?

Popularne formaty z wyraźną sygnaturą: PDF, archiwa ZIP, GZIP, 7z i RAR; obrazy PNG, JPEG, GIF, WebP i inne; audio MP3, WAV, OGG, FLAC i M4A; wideo MP4 i WebM; czcionki WOFF, WOFF2, TTF i OTF; WebAssembly i wiele innych. Rozpoznawane są także JSON, XML, HTML i zwykły tekst. Formatów bez sygnatury nie da się zidentyfikować, więc jeśli znasz rzeczywisty typ, zmień nazwę pobranego pliku.

Dlaczego plik Word lub Excel został wykryty jako ZIP?

Pliki DOCX, XLSX i PPTX, podobnie jak EPUB i JAR, są archiwami ZIP o określonej strukturze folderów i zaczynają się od tych samych magicznych bajtów co każdy plik ZIP. Zdekodowane bajty są poprawne: zmień rozszerzenie pobranego pliku na .docx, .xlsx lub inne potrzebne, a plik otworzy się normalnie.

Czy można wkleić data URI?
Tak. Wklej cały ciąg razem z prefiksem data:...;base64, albo tylko część Base64. W obu przypadkach typ jest sprawdzany na podstawie zdekodowanych bajtów.
Dlaczego zdekodowany plik jest mniejszy niż tekst Base64?

Base64 używa 4 znaków na każde 3 bajty, więc plik ma około trzech czwartych długości tekstu. Jeśli jest dużo mniejszy niż oczekiwany plik, dane wejściowe zostały prawdopodobnie obcięte.

Czy dane są gdzieś wysyłane?

Nie. Dekodowanie, wykrywanie typu i podgląd działają w przeglądarce, a plik do pobrania jest tworzony na urządzeniu. Nic nie jest przesyłane na serwer.