قابلیت دانلود فایل در ASP.net MVC امری ضروری در هر وبسایت می باشد. در این مقاله با نحوه دانلود فایل در MVC آشنا خواهید شد.
دانلود فایل در ASP.net MVC
عموما دانلود فایل به دو صورت انجام میگیرد. فایلها درون بانک اطلاعاتی ذخیره میشوند (به فرمت بایت) یا فایل به صورت فیزیکی درون برنامه در سرور موجود است. تکه کد زیر در هر دو سناریو کار می کند و باید فرمت بایت برای دانلود فایل در نظر گرفته شود.
- برای شروع ابتدا یک پوشه با نام Download در پروژه ایجاد می کنیم
- سپس (Action) تعریف کرده و کدهای زیر را قرار میدهیم:
public ActionResult DownloadFile() { string path = AppDomain.CurrentDomain.BaseDirectory + "FolderName/"; byte[] fileBytes = System.IO.File.ReadAllBytes(path + "filename.extension"); string fileName = "filename.extension"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }
- در خط اول به معرفی دامنه فعلی سایت پرداخته و در انتهای آن نام پوشه Download را اضافه میکنیم.
- حالا لازم است فایل مربوطه را به شکل Byte در حافظه ذخیره کنیم.
- پس در خط دوم علاوه بر معرفی مسیر نام دقیق فایل همراه با پسوند آن را قرار میدهیم.
- در خط سوم نام فایل را جهت ذخیره یکبار دیگر معرفی میکنیم.
- در انتها پارامترهای بالا را درون متد File پاس میدهیم.
public ActionResult DownloadFile() { string path = AppDomain.CurrentDomain.BaseDirectory + "/Download/"; byte[] fileBytes = System.IO.File.ReadAllBytes(path+"Logo_01.jpg"); string fileName = "Logo_01.jpg"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }
برای استفاده از متد در ویو کافی است مانند زیر عمل نماییم تا با صدا زدن Action فایل مورد نظرمان دانلود شود:
@Html.ActionLink("برای دانلود فایل کلیک نمایید", "DownloadFile", new {})
این مطالب را از دست ندهید:
آپلود فایل با Ajax در ASP.net mvc بوسیله File Upload
ممنون، یه سوال داشتم از خدمتتون اینکه، برای محاسبه تعداد دقیق دانلود فایل باید چیکار کرد؟