Base64 File Encoder
किसी भी फ़ाइल को Base64 में एन्कोड करें: PDF, ZIP, इमेज आदि
यहाँ कोई भी फ़ाइल ड्रॉप करें या अपलोड करने के लिए क्लिक करें
सभी फ़ाइल प्रकार: PDF, ZIP, इमेज, बाइनरी फ़ाइलें
Base64 फ़ाइल एन्कोडिंग क्या है?
Base64 फ़ाइल एन्कोडिंग बाइनरी फ़ाइलों — PDF, ZIP, इमेज, निष्पादन योग्य फ़ाइलें, फ़ॉन्ट, ऑडियो — को RFC 4648 में परिभाषित वर्णमाला का उपयोग करके सरल ASCII पाठ में बदलती है। बाइनरी इनपुट के प्रत्येक तीन बाइट चार Base64 वर्ण बन जाते हैं, जिससे एक पाठ प्रतिनिधित्व बनता है जो केवल पाठ के लिए डिज़ाइन किए गए माध्यमों से गुज़र सकता है: JSON API पेलोड, XML दस्तावेज़, ईमेल बॉडी, HTML विशेषताएँ और पर्यावरण चर।
पाठ-से-Base64 एन्कोडिंग (जो स्ट्रिंग पर काम करती है) के विपरीत, फ़ाइल-से-Base64 एन्कोडिंग किसी भी फ़ाइल की कच्ची बाइट धारा को उसके प्रारूप की परवाह किए बिना पढ़ती है। PDF के बाइनरी हेडर, ZIP के संपीड़ित ब्लॉक और PNG का पिक्सेल डेटा सभी को एक समान माना जाता है: ऑक्टेट की एक अनुक्रमिक श्रृंखला जिसे पुनः एन्कोड किया जाना है। परिणाम हमेशा मान्य ASCII होता है, जो कहीं भी एम्बेड करने के लिए सुरक्षित है जहाँ प्रिंट करने योग्य वर्ण स्वीकार किए जाते हैं।
इसकी एक सीमा है: Base64 आउटपुट मूल बाइनरी से लगभग 33% बड़ा होता है। 1 MB PDF के लिए, इसका अर्थ है लगभग 1.33 MB का Base64 पाठ। यह अधिभार 8-बिट बाइट को 6-बिट वर्णों से दर्शाने की अनिवार्य लागत है — कोई भी कार्यान्वयन इसे टाल नहीं सकता। इसके बावजूद, Base64 फ़ाइल एन्कोडिंग केवल-पाठ प्रारूपों में बाइनरी डेटा एम्बेड करने की मानक विधि बनी हुई है, जो MIME (RFC 2045), डेटा URI (RFC 2397) और JSON Web Tokens (RFC 7519) में निर्दिष्ट है।
इस Base64 File Encoder का उपयोग क्यों करें?
यह टूल सीधे आपके ब्राउज़र में FileReader API का उपयोग करके फ़ाइलों को Base64 में एन्कोड करता है। कोई भी फ़ाइल सर्वर पर अपलोड नहीं होती — पूरा रूपांतरण JavaScript में क्लाइंट-साइड होता है।
Base64 फ़ाइल एन्कोडिंग के उपयोग के मामले
Base64 फ़ाइल आकार अधिभार
Base64 एन्कोडिंग डेटा आकार को ठीक एक तिहाई बढ़ा देती है। प्रत्येक 3 इनपुट बाइट 4 आउटपुट वर्ण उत्पन्न करते हैं (प्रत्येक 6 बिट दर्शाता है)। जब इनपुट की लंबाई 3 के गुणज में नहीं होती तो पैडिंग वर्ण (=) जोड़े जाते हैं। नीचे दी गई तालिका मूल फ़ाइल आकार और एन्कोडेड आउटपुट आकार के बीच संबंध दर्शाती है।
| फ़ाइल आकार | कच्चे बाइट | Base64 बाइट | अधिभार |
|---|---|---|---|
| 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% |
Data URI और MIME प्रकार संदर्भ
एक Data URI फ़ाइल सामग्री को सीधे HTML, CSS, या JavaScript में इस प्रारूप का उपयोग करके एम्बेड करता है: data:[MIME प्रकार];base64,[एन्कोडेड डेटा]। MIME प्रकार ब्राउज़र को बताता है कि डीकोड किए गए बाइट की व्याख्या कैसे करें। नीचे सामान्य फ़ाइल एक्सटेंशन, उनके MIME प्रकार और संबंधित Data URI उपसर्ग दिए गए हैं।
| एक्सटेंशन | MIME प्रकार | Data URI उपसर्ग |
|---|---|---|
| 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,... |
कोड उदाहरण
ये चलाने योग्य उदाहरण दर्शाते हैं कि JavaScript, Python, Node.js, bash और Go में बाइनरी फ़ाइल कैसे पढ़ें और उसे Base64 में एन्कोड करें। प्रत्येक स्निपेट पैडिंग के साथ मानक Base64 (RFC 4648 अनुभाग 4) उत्पन्न करता है।
// 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)
}