حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش باز کردن فایل در مرورگر در ASP.NET Core به زبان ساده

چگونه در ASP.NET Core یک فایل را در مرورگر باز کنیم؟ در ASP.NET Core برای اینکه نتیجه یک درخواست در قالب فایل به سمت مرورگر ارسال شود، از متد File استفاده می کنیم. این متد Overload های مختلفی دارد که هر کدام کاربرد خاص خود را دارد. در حالت عادی، فایل درخواستی ما توسط مرورگر دانلود می شود، اما می توان فایل رو به جای دانلود در مرورگر باز کرد، این کار برای فایل هایی مثل فایل های متنی، فایل های PDF و تصاویر کاربرد دارد. در ابتدا با یک مثال ساده شروع می کنیم. فرض کنیم که میخواهیم یک فایل تصویر را به عنوان نتیجه درخواست برگردانیم، از کد زیر می توانیم استفاده کنیم:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
var filePath = "File path to return";
return File(System.IO.File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read), "image/jpeg", "file1.jpg");

در حالت بالا، بعد از ارسال درخواست فایل مورد نظر برای ما دانلود می شود. اما فرض کنیم که میخواهیم فایل مورد نظر در مرورگر برای ما باز شود، برای اینکار باید حالت inline رو برای content disposation فایل برگشتی فعال کنیم، کد بالا رو به صورت زیر تغییر میدیم:

var filePath = "File path";
System.Net.Mime.ContentDisposition cd = new System.Net.Mime.ContentDisposition
{
 FileName = WebUtility.UrlEncode("file1.jpg"),
 Inline = true
};
Response.Headers.Add("Content-Disposition", cd.ToString());
return File(System.IO.File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read), "image/jpeg");

با اضافه کردن کد بالا با درخواست فایل، به جای دانلود تصویر ما در مرورگر باز می شود، نام فایل رو با متد UrlEncode به صورت Encode شده تبدیل کردیم، زیرا اگر نام فایل ما حاوی کاراکترهای یونیکد باشد در حالت عادی پیام خطا دریافت خواهیم کرد.


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات