এখানে ফাইল আপলোড করে Blob URL, Base64 ও Base58 এনকোড করা যাবে — তারপর exterior CDN-এ আপলোড করে প্রকৃত public URL ব্যবহার করবেন।
পরামর্শ: যদি আপনি পার্মানেন্ট CDN চান, GitHub Pages, Cloudflare Pages বা S3-স্তর ব্যবহার করে আপলোড করুন। এখানে প্রদত্ত Blob URL কেবল ওই ব্রাউজারে কার্যকর।
নির্বাচিত ফাইল বিবরণ
কোনো ফাইল নির্বাচিত নয়।
জেনারেটেড কোড (Embed / Config)
ফাইল নির্বাচন করলে এখানে ইনলাইন embed / config কোড দেখাবে।
কিভাবে ব্যবহার করবেন?
ফাইল আপলোড করুন।
প্রিভিউ থেকে Blob URL কপি বা Base64/Base58 রূপান্তর করে ডাউনলোড করুন।
প্রকৃত CDN হওয়ার জন্য পছন্দমতো সার্ভারে আপলোড করে public URL ব্যবহার করুন।
\n\n/* Inline Base64 as data URI (not common for JS) */\n/* data:application/javascript;base64,${item.base64} */`;
} else if(item.file.type.startsWith('image/')){
code = `\n\n\n/* Base64 */\n/* data:${item.file.type};base64,${item.base64} */`;
} else {
code = `\nDownload ${escapeHtml(item.file.name)}\n\n/* Base64: data:...;base64,${item.base64.substring(0,120)}... */`;
}
// add suggested CDN config JSON snippet
const config = {
filename: item.file.name,
url: item.url,
mime: item.file.type,
size: item.file.size,
createdAt: item.uploadedAt
};
code += `\n\n/* Suggested config JSON */\n` + JSON.stringify(config, null, 2);
mGeneratedCode.innerText = code;
// scroll to preview
mGeneratedCode.scrollIntoView({ behavior:'smooth', block:'center' });
Swal.fire({ title:'সিলেক্ট করা হলো', text:`${item.file.name} নির্বাচিত`, icon:'success', timer:900, showConfirmButton:false });
}
// Helper: Base64 -> Blob
function b64toBlob(b64Data, contentType='', sliceSize=512){
const byteCharacters = atob(b64Data);
const byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
const byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
return new Blob(byteArrays, {type: contentType});
}
// escape for HTML
function escapeHtml(s){ return String(s).replace(/[&<>"']/g, function(m){ return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[m]; }); }
// initial message
(function init(){
mGeneratedCode.innerText = 'ফাইল নির্বাচন করলে এখানে ইনলাইন embed / config কোড দেখাবে।';
mSelectedInfo.innerText = 'কোনো ফাইল নির্বাচিত নয়।';
})();