正在加载,请稍候…

Base64 File Converter: Encode Any File to Base64 String

Convert any file to Base64 string and back. Learn when to use Base64 for file embedding and data URIs.

What Is Base64 File Encoding?

Base64 encoding converts binary file data into ASCII text characters. This makes it possible to embed binary files (images, PDFs, fonts, audio) directly in text-based formats like HTML, CSS, JavaScript, JSON, and XML — where raw binary data would be invalid or cause parsing issues.

Why Base64 for Files?

Data URLs in HTML/CSS

Embed images directly without separate HTTP requests:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..." />
.icon {
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxu...');
}

Email Attachments (MIME)

Email uses Base64 to encode attachments in the MIME multipart format, since email protocols were originally designed for 7-bit ASCII text only.

JSON API Payloads

Transmit file contents in JSON APIs without separate file upload endpoints:

{
  "filename": "report.pdf",
  "content": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3Ro...",
  "encoding": "base64"
}

Storing Binary in Databases

Some database fields store binary data as Base64-encoded strings in text columns, particularly when binary column types aren't available or practical.

How Base64 Works

Base64 uses 64 characters: A-Z, a-z, 0-9, +, /, and = for padding.

The encoding process:

  1. Take 3 bytes (24 bits) of binary data
  2. Split into four 6-bit groups
  3. Map each 6-bit value to a Base64 character
  4. If input isn't divisible by 3, add = padding

Size impact: Base64 increases file size by approximately 33% (4 characters for every 3 bytes of input, or 8 bits for every 6 bits of input).

Base64 Variants

Standard Base64

Uses + and / as characters 62 and 63. Padding with =.

URL-Safe Base64

Replaces + with - and / with _ to avoid URL encoding issues. Used in JWT tokens, URL parameters, and filenames.

Base64 Without Padding

Some systems omit the trailing = padding. Node.js's base64url encoding does this.

Common File Types and Data URLs

File Type MIME Type Data URL Prefix
PNG image image/png data:image/png;base64,
JPEG image image/jpeg data:image/jpeg;base64,
SVG image image/svg+xml data:image/svg+xml;base64,
PDF application/pdf data:application/pdf;base64,
Web font (WOFF) font/woff data:font/woff;base64,
Audio (MP3) audio/mpeg data:audio/mpeg;base64,

Performance Considerations

Pros of Embedding with Data URLs

  • Eliminates HTTP request for the embedded resource
  • Useful for small images in critical rendering path
  • Works offline/in local files without a server

Cons of Embedding with Data URLs

  • Increases HTML/CSS file size by 33% per embedded file
  • Resources cannot be cached independently by the browser
  • Larger payloads can slow initial page rendering
  • Binary data in text files makes version control diffs harder

Rule of thumb: Use Base64 data URLs for small resources under 5KB. For larger files, keep them as separate assets.

Encoding Files Programmatically

Node.js

const fs = require('fs');
const fileData = fs.readFileSync('image.png');
const base64 = fileData.toString('base64');
const dataUrl = `data:image/png;base64,${base64}`;

Python

import base64
with open('image.png', 'rb') as f:
    encoded = base64.b64encode(f.read()).decode('utf-8')
data_url = f'data:image/png;base64,{encoded}'

Browser (FileReader API)

const reader = new FileReader();
reader.onload = (e) => console.log(e.target.result); // data URL
reader.readAsDataURL(file);

Using the Base64 File Converter Tool

Our tool provides:

  1. Drag-and-drop file upload — accept any file type
  2. Instant Base64 encoding — converts immediately on file selection
  3. Data URL generation — automatically prepends the correct MIME type prefix
  4. Decoding support — paste Base64 to download the original file
  5. Copy to clipboard — one-click copy for both raw Base64 and full data URL
  6. File size comparison — shows original vs. encoded size

Use it for embedding images in single-page HTML exports, preparing files for JSON API upload, generating CSS data URLs, and debugging Base64-encoded content in network requests.