সাধারণত আমাদের বিভিন্ন ডাটা নিয়ে কাজ করতে হয় এবং প্রয়োজন অনুসারে তা ডাটাবেইজে সংরক্ষণ করতে হয়। আজকে একটি সমস্যা নিয়ে আলোচনা করবো তা হলো, “MognoDB তে সংরক্ষণকৃত PDF ফাইল ফ্রন্টএ্যান্ড এ একসেস অথবা ডাউনলোড দিলে তা করাপ্ট দেখায়” তাহলে চলুন এই সমস্যার সমাধান করার চেষ্টা করি।
যে সকল কারণে সমস্যা হয়ঃ
⇘ MongoDB তে সাধারণত বাইনারি ডাটা সংরক্ষন
করে এবং PDF এর বাইনারি ডেটা সঠিকভাবে এনকোড না হলে ফ্রন্টএ্যান্ড বা ক্লাইন্ট সাইডে
PDF ফাইলটি ডেকোড হওয়ার সময় করাপ্ট হয়ে যায়।
⇘ অ্যাাঙ্কর (a) ট্যাগ এর মাধ্যমে এপিআই কলের
মাধ্যমে MonogoDB থেকে PDF ফাইল সরাসরি ডাউনলোড করা হলে, ব্রাউজার ডাউনলোডকৃত ফাইলের
সঠিক টাইপ চিনতে পারে না।
⇘ ফাইলের আকার বড় হলে ডাউনলোড করার সময় নেটওয়ার্কের
সমস্যা বা সার্ভারের লোডের কারণে ফাইলটি করাপ্ট হতে পারে।
⇘ সঠিকভাবে ফাইল এনকোড বা ডিকোড না হলে ফাইল
করাপ্ট হতে পারে।
সমাধানঃ
⇘ MongoDB থেকে PDF এর বাইনারি ডেটা ফেচ করে
Base64 এ এনকোড করুন এবং এই এনকোডকৃত স্ট্রিংটি HTML এর অ্যাাঙ্কর ট্যাগের href এট্র্যিভিউটে
ডেটা URI সেট করুন।
⇘ ক্লায়েন্টের রিকোয়েস্ট অনুযায়ি MongoDB থেকে
PDF ফাইল ফেচ করার সময় HTTP রেসপন্সে Content Type হেডার application/pdf দিন এবং রেসপন্স
বডিতে PDF এর বাইনারি ডেটা পাঠাবেন।
⇘ বড় ধরনের ফাইল হলে MongoDB এ GridFS ব্যাবহার
করতে পারেন কেননা GridFS ফাইলটিকে ছোট ছোট চাংকে ভাগ করে সংরক্ষণ করে এবং ডাউনলোড করার
সময় ছোট ছোট চাংক একত্রিত করে।
ফাইল রিট্রিভ এবং ডাউনলোড প্রক্রিয়া কোড (Node.js):
ফ্রন্টএ্যান্ড ফাইল ডাউনলোড প্রক্রিয়া: