আমি আমার কাছে এটি প্রস্তাব দিয়েছিলাম যে আমার Asp.Net MVC অ্যাপ্লিকেশন থেকে ব্যবহারকারীদের ফাইল ডাউনলোড করার অনুমতি দেওয়ার জন্য আমার ফাইলআরসাল্ট ব্যবহার করা উচিত। তবে এর একমাত্র উদাহরণ আমি খুঁজে পেতে পারি ইমেজ ফাইলগুলির সাথে সর্বদা করণীয় (বিষয়বস্তুর ধরণের চিত্র / জেপিগ উল্লেখ করে)।
তবে আমি যদি ফাইলের ধরণটি জানতে না পারি? আমি চাই যে ব্যবহারকারীরা আমার সাইটের ফাইলারি থেকে যে কোনও ফাইল ডাউনলোড করতে পারবেন।
আমি এটি করার একটি পদ্ধতি পড়েছি ( কোডের জন্য পূর্ববর্তী পোস্টটি দেখুন ), এটি আসলে একটি কাজ বাদ দিয়ে খুব ভাল কাজ করে: সেভ হিসাবে ডায়ালগটিতে যে ফাইলটি আসে সেটির নাম আন্ডারস্কোর সহ ফাইলের পথ থেকে সংক্ষিপ্ত হয় ( folder_folder_file.ext)। এছাড়াও, লোকেদের মনে হয় যে আমি বাইনারি কনটেন্টারসাল্ট খুঁজে পেয়েছি এমন কাস্টম ক্লাসটি ব্যবহার না করে আমার কোনও ফাইলসোল্ট ফিরে দেওয়া উচিত।
এমভিসিতে এমন ডাউনলোড করার "সঠিক" উপায়টি কি কেউ জানেন?
সম্পাদনা: আমি উত্তরটি পেয়েছি (নীচে), তবে কেবল ভেবেছি যদি অন্য কেউ আগ্রহী হয় তবে আমার সম্পূর্ণ কার্য কোড পোস্ট করা উচিত:
public ActionResult Download(string filePath, string fileName)
{
string fullName = Path.Combine(GetBaseDir(), filePath, fileName);
byte[] fileBytes = GetFile(fullName);
return File(
fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
byte[] GetFile(string s)
{
System.IO.FileStream fs = System.IO.File.OpenRead(s);
byte[] data = new byte[fs.Length];
int br = fs.Read(data, 0, data.Length);
if (br != fs.Length)
throw new System.IO.IOException(s);
return data;
}