دانلود فایل ها در MVC

دانلود فایل ها در MVC

بسم الله الرحمن الرحیم

Action ها می تواننند مقادیر مختلفی را بر گردانند در این آموزش قصد داریم نحوه ایجاد یک ActionResult را برای بازگرداندن یک فایل بررسی کنیم.

برای این کار کافی است به صورت زیر عمل کنید

public ActionResult Index()
{
  string path = Server.MapPath(@"~/Images/logo.png");
  return (File(path, contentType: "ABLY", fileDownloadName: "logo.png"));
}

همانطور که مشاهده می کنید بسیار کار ساده ای را در اینجا انجام داده ایم.

پارامتر اول در واقع مسیر و نام و پسوند فایلی است که می خواهید دانلود شود.

پارامتر دوم contentType برای معرفی محتوای فایل به برنامه های دانلود و مرورگر می باشد.

پارامتر سوم که fileDownloadName می باشد در واقع همان نام فایلی است که میخواهید در هنگام دانلود برای کاربر نمایش داده شود.

بسم الله الرحمن الرحیم

Action ها می تواننند مقادیر مختلفی را بر گردانند در این آموزش قصد داریم نحوه ایجاد یک ActionResult را برای بازگرداندن یک فایل بررسی کنیم.

برای این کار کافی است به صورت زیر عمل کنید

public ActionResult Index()
{
  string path = Server.MapPath(@"~/Images/logo.png");
  return (File(path, contentType: "ABLY", fileDownloadName: "logo.png"));
}

همانطور که مشاهده می کنید بسیار کار ساده ای را در اینجا انجام داده ایم.

پارامتر اول در واقع مسیر و نام و پسوند فایلی است که می خواهید دانلود شود.

پارامتر دوم contentType برای معرفی محتوای فایل به برنامه های دانلود و مرورگر می باشد.

پارامتر سوم که fileDownloadName می باشد در واقع همان نام فایلی است که میخواهید در هنگام دانلود برای کاربر نمایش داده شود.

همانطور که می دانید تمامی خروجی های Action ها از ActionResult ارث می برند پس اگر شما نوع خروجی خود را ActionResult بگذارید هیچ مشکلی پیش نخواهد آمد اما اگر بخواهید مستقیما قید کنید که خروجی شما دقیقا چیست، این کار را نیز می توانید انجام دهید.

در اینجا خروجی ما FileResult است پس کافی است کد بالا را برای بهینه شدن به صورت زیر تغییر دهیم.

public FileResult Index()
{
  string path = Server.MapPath(@"~/Images/logo.png");
return (File(path, contentType: "PDF", fileDownloadName: "logo.png"));
}

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس