ToolDeck

Base64 ফাইল এনকোডার

যেকোনো ফাইলকে Base64-এ এনকোড করুন: PDF, ZIP, ইমেজ ও আরও

এখানে যেকোনো ফাইল ড্রপ করুন বা আপলোড করতে ক্লিক করুন

যেকোনো ফাইল টাইপ: PDF, ZIP, ইমেজ, বাইনারি ফাইল

Base64 ফাইল এনকোডিং কী?

Base64 ফাইল এনকোডিং বাইনারি ফাইল — PDF, ZIP, ইমেজ, এক্সিকিউটেবল, ফন্ট, অডিও — কে RFC 4648-এ সংজ্ঞায়িত অ্যালফাবেট ব্যবহার করে সরল ASCII টেক্সটে রূপান্তরিত করে। বাইনারি ইনপুটের প্রতিটি তিনটি বাইট চারটি Base64 অক্ষরে পরিণত হয়, যা এমন একটি টেক্সট উপস্থাপনা তৈরি করে যা শুধুমাত্র টেক্সটের জন্য ডিজাইন করা চ্যানেলের মাধ্যমে পাঠানো যায়: JSON API পেলোড, XML ডকুমেন্ট, ইমেইল বডি, HTML অ্যাট্রিবিউট এবং পরিবেশ চলক।

টেক্সট-থেকে-Base64 এনকোডিংয়ের বিপরীতে (যা স্ট্রিংয়ে কাজ করে), ফাইল-থেকে-Base64 এনকোডিং ফর্ম্যাট নির্বিশেষে যেকোনো ফাইলের কাঁচা বাইট স্ট্রিম পড়ে। একটি PDF-এর বাইনারি হেডার, একটি ZIP-এর সংকুচিত ব্লক এবং একটি PNG-এর পিক্সেল ডেটা সবকিছুকে একইভাবে বিবেচনা করা হয়: অক্টেটের ধারাবাহিকতা হিসেবে পুনরায় এনকোড করতে হবে। ফলাফল সর্বদা বৈধ ASCII, যেকোনো জায়গায় নিরাপদে এম্বেড করা যায় যেখানে প্রিন্টযোগ্য অক্ষর গ্রহণযোগ্য।

এই পদ্ধতির একটি অসুবিধা হলো আকার: Base64 আউটপুট মূল বাইনারির চেয়ে প্রায় ৩৩% বড়। ১ MB PDF-এর জন্য এর মানে প্রায় ১.৩৩ MB Base64 টেক্সট। এই অতিরিক্ত আকার ৮-বিট বাইটকে ৬-বিট অক্ষরে উপস্থাপন করার মূল্য এবং এটি এনকোডিংয়ের সহজাত — কোনো বাস্তবায়নই এটি এড়াতে পারে না। তবুও, Base64 ফাইল এনকোডিং MIME (RFC 2045), ডেটা URI (RFC 2397) এবং JSON Web Token (RFC 7519)-এ নির্দিষ্ট করা টেক্সট-ওনলি ফরম্যাটে বাইনারি ডেটা এম্বেড করার মানক পদ্ধতি হিসেবে রয়ে গেছে।

এই Base64 ফাইল এনকোডার কেন ব্যবহার করবেন?

এই টুলটি FileReader API ব্যবহার করে সরাসরি আপনার ব্রাউজারে ফাইল Base64-এ এনকোড করে। কোনো ফাইল সার্ভারে আপলোড হয় না — সম্পূর্ণ রূপান্তর ক্লায়েন্ট-সাইডে JavaScript-এ সম্পন্ন হয়।

🛡
গোপনীয়তা-প্রথম প্রক্রিয়াকরণ
আপনার ফাইল কখনো আপনার ডিভাইস ছাড়ে না। FileReader API ফাইলটি স্থানীয়ভাবে মেমোরিতে পড়ে এবং Base64 আউটপুট সম্পূর্ণরূপে ব্রাউজারে তৈরি হয়। কোনো নেটওয়ার্ক অনুরোধ করা হয় না।
তাৎক্ষণিক ড্র্যাগ-এন্ড-ড্রপ
টুলে যেকোনো ফাইল ড্রপ করুন এবং তাৎক্ষণিকভাবে Base64 আউটপুট দেখুন। আপলোডের জন্য অপেক্ষা নেই, প্রগতি বার নেই, সার্ভার আরোপিত ফাইল সাইজ সীমা নেই।
📁
যেকোনো ফাইল ফরম্যাট
PDF, ZIP, ইমেজ, ফন্ট, অডিও ফাইল, WebAssembly মডিউল বা যেকোনো বাইনারি ফরম্যাট এনকোড করুন। এনকোডার সব ফাইলকে কাঁচা বাইট স্ট্রিম হিসেবে বিবেচনা করে — ফরম্যাট কোনো ব্যাপার না।
🔒
কোনো অ্যাকাউন্ট প্রয়োজন নেই
নিবন্ধন, লগইন বা কুকি গ্রহণ ছাড়াই টুলটি তাৎক্ষণিকভাবে ব্যবহার করুন। আউটপুট একটি ক্লিকে কপি করতে বা .b64.txt ফাইল হিসেবে ডাউনলোড করতে প্রস্তুত।

Base64 ফাইল এনকোডিংয়ের ব্যবহারের ক্ষেত্র

ফ্রন্টএন্ড ডেভেলপার
অতিরিক্ত HTTP অনুরোধ দূর করতে CSS বা HTML-এ ডেটা URI হিসেবে ছোট আইকন, ফন্ট বা SVG সরাসরি এম্বেড করুন। Base64 হিসেবে ইনলাইন করা একটি ২ KB আইকন একটি নেটওয়ার্ক রাউন্ড-ট্রিপ বাঁচায় যা ৫০-২০০ ms লেটেন্সি যোগ করত।
ব্যাকএন্ড ইঞ্জিনিয়ার
যখন পরিবহন প্রোটোকল multipart আপলোড সমর্থন করে না তখন JSON API পেলোডে ফাইল সংযুক্তি অন্তর্ভুক্ত করুন। REST বা GraphQL প্রতিক্রিয়ায় স্ট্রিং ফিল্ড হিসেবে পাঠানোর আগে PDF, রিপোর্ট বা স্বাক্ষরিত ডকুমেন্ট এনকোড করুন।
ডেভঅপস / ইনফ্রাস্ট্রাকচার
পরিবেশ চলক, Kubernetes Secrets বা Terraform tfvars-এ বাইনারি কনফিগারেশন ফাইল (TLS সার্টিফিকেট, SSH কী, লাইসেন্স ফাইল) Base64 স্ট্রিং হিসেবে সংরক্ষণ করুন যেখানে কাঁচা বাইনারি মান অনুমোদিত নয়।
QA / পরীক্ষা প্রকৌশলী
স্বয়ংক্রিয় পরীক্ষার জন্য Base64 ফাইল ফিক্সচার তৈরি করুন যা আপলোড এন্ডপয়েন্ট, ইমেইল অ্যাটাচমেন্ট পরিচালনা বা ডকুমেন্ট প্রক্রিয়াকরণ পাইপলাইন যাচাই করে — সংস্করণ নিয়ন্ত্রণে বাইনারি পরীক্ষা ফাইল না রেখেই।
ডেটা ইঞ্জিনিয়ার
JSON-ভিত্তিক ডেটা ক্যাটালগ, কনফিগারেশন স্টোর বা মাইগ্রেশন স্ক্রিপ্টে সংরক্ষণের জন্য বাইনারি ব্লব (Parquet মেটাডেটা, Protobuf স্কিমা, ছোট বাইনারি অ্যাসেট) Base64-এ ক্রমবদ্ধ করুন।
শিক্ষার্থী / শিক্ষানবিশ
ছোট ফাইল এনকোড করে এবং আউটপুট পরীক্ষা করে দেখুন কিভাবে বাইনারি ফাইল টেক্সটে পরিণত হয়। RFC 4648-এ বর্ণিত ৩৩% অতিরিক্ত আকার যাচাই করতে Base64 দৈর্ঘ্য ও মূল ফাইল সাইজ তুলনা করুন।

Base64 ফাইল সাইজের অতিরিক্ত আকার

Base64 এনকোডিং ডেটার আকার ঠিক এক-তৃতীয়াংশ বৃদ্ধি করে। প্রতিটি ৩টি ইনপুট বাইট ৪টি আউটপুট অক্ষর তৈরি করে (প্রতিটি ৬ বিট প্রতিনিধিত্ব করে)। ইনপুটের দৈর্ঘ্য ৩-এর গুণিতক না হলে প্যাডিং অক্ষর (=) যোগ করা হয়। নিচের সারণিটি মূল ফাইল সাইজ এবং এনকোড করা আউটপুট সাইজের মধ্যে সম্পর্ক দেখায়।

ফাইল সাইজকাঁচা বাইটBase64 বাইটঅতিরিক্ত আকার
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%

Data URI এবং MIME Type রেফারেন্স

একটি data URI সরাসরি HTML, CSS বা JavaScript-এ ফাইল বিষয়বস্তু এম্বেড করে data:[MIME type];base64,[encoded data] ফরম্যাটে। MIME টাইপ ব্রাউজারকে বলে কিভাবে ডিকোড করা বাইট ব্যাখ্যা করতে হবে। নিচে সাধারণ ফাইল এক্সটেনশন, তাদের MIME টাইপ এবং সংশ্লিষ্ট data URI প্রিফিক্স দেওয়া হলো।

এক্সটেনশনMIME TypeData 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,...

কোড উদাহরণ

এই কার্যকর উদাহরণগুলো দেখায় কিভাবে JavaScript, Python, Node.js, bash এবং Go-তে একটি বাইনারি ফাইল পড়ে Base64-এ এনকোড করতে হয়। প্রতিটি স্নিপেট প্যাডিং সহ মানক Base64 (RFC 4648 Section 4) তৈরি করে।

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

প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমি Base64-এ সর্বোচ্চ কত সাইজের ফাইল এনকোড করতে পারি?
এই টুলটি সম্পূর্ণ আপনার ব্রাউজারে চলে, তাই সীমা উপলব্ধ মেমোরির উপর নির্ভর করে। আধুনিক ব্রাউজার বিনা সমস্যায় ৫০-১০০ MB পর্যন্ত ফাইল পরিচালনা করতে পারে। এর চেয়ে বড় ফাইলের জন্য base64 (macOS/Linux) বা Python-এর base64 মডিউলের মতো কমান্ড-লাইন টুল ব্যবহার করুন, যা ফাইলটি খণ্ডে প্রক্রিয়া করে এবং একবারে সম্পূর্ণ আউটপুট মেমোরিতে লোড করে না।
Base64 আউটপুট মূল ফাইলের চেয়ে কতটা বড়?
Base64 আউটপুট সর্বদা ইনপুটের চেয়ে প্রায় ৩৩.৩% বড়। সুনির্দিষ্টভাবে, সূত্রটি হলো ceil(n / 3) * 4, যেখানে n হলো ইনপুট বাইটের সংখ্যা। ১ MB ফাইল প্রায় ১.৩৩ MB Base64 টেক্সট তৈরি করে। এই অতিরিক্ত আকার এনকোডিংয়ের সহজাত এবং হ্রাস করা সম্ভব নয়।
আমি কি একটি ফাইল Base64-এ এনকোড করে data URI হিসেবে ব্যবহার করতে পারি?
হ্যাঁ। Base64 স্ট্রিংয়ের আগে MIME টাইপ প্রিফিক্স যোগ করুন: data:application/pdf;base64, তারপর এনকোড করা বিষয়বস্তু। ব্রাউজার data URI-কে নিয়মিত ফাইলের মতো ডিকোড ও রেন্ডার করবে। Data URI img src, link href, CSS url() এবং anchor download অ্যাট্রিবিউটে কাজ করে।
Base64 ফাইল এনকোডিং কি এনক্রিপশনের মতো?
না। Base64 একটি এনকোডিং, এনক্রিপশন নয়। এটি বাইনারি ডেটাকে একটি টেক্সট উপস্থাপনায় রূপান্তরিত করে যা সহজেই বিপরীত — যেকোনো Base64 ডিকোডার দিয়ে মূল ফাইল পুনরুদ্ধার করা যায়। Base64 কোনো গোপনীয়তা, অখণ্ডতা বা প্রমাণীকরণ প্রদান করে না। ফাইলের বিষয়বস্তু সুরক্ষিত করতে হলে আগে ফাইলটি এনক্রিপ্ট করুন (যেমন AES-256-GCM দিয়ে), তারপর পরিবহনের জন্য সাইফারটেক্সট Base64-এনকোড করুন।
আমার Base64 স্ট্রিং কেন এক বা দুটি = অক্ষরে শেষ হয়?
= অক্ষরগুলো প্যাডিং। Base64 ইনপুট ৩-বাইট গ্রুপে প্রক্রিয়া করে, প্রতি গ্রুপে ৪টি আউটপুট অক্ষর তৈরি করে। ফাইল সাইজ ৩-এর গুণিতক না হলে, আউটপুটের দৈর্ঘ্য সর্বদা ৪-এর গুণিতক হওয়ার জন্য এক বা দুটি প্যাডিং অক্ষর যোগ করা হয়। একটি = মানে শেষ গ্রুপে ২টি বাইট ছিল; দুটি == মানে শেষ গ্রুপে ১টি বাইট ছিল।
কমান্ড লাইন থেকে কিভাবে একটি ফাইল Base64-এ এনকোড করব?
macOS এবং Linux-এ base64 কমান্ড ব্যবহার করুন: base64 < file.pdf > file.b64.txt। GNU/Linux-এ লাইন র‍্যাপিং দমন করতে -w 0 যোগ করুন। আপনি OpenSSL-ও ব্যবহার করতে পারেন: openssl base64 -in file.pdf -out file.b64.txt। Windows PowerShell-এ: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf'))।
কখন multipart/form-data-এর পরিবর্তে Base64 ফাইল এনকোডিং ব্যবহার করব?
Base64 ব্যবহার করুন যখন পরিবহনের জন্য টেক্সট-ওনলি ফরম্যাট প্রয়োজন — JSON API, XML-RPC, পরিবেশ চলক বা Kubernetes Secrets। multipart/form-data ব্যবহার করুন যখন HTML ফর্ম বা বাইনারি স্ট্রিম সমর্থনকারী REST এন্ডপয়েন্টের মাধ্যমে ফাইল আপলোড করবেন। Multipart বেশি দক্ষ কারণ এটি ৩৩% অতিরিক্ত আকার এড়িয়ে চলে, কিন্তু এটির জন্য সার্ভারকে multipart সীমানা বিশ্লেষণ করতে হয়।