تا %60 درصد تخفیف برای تنها 5 نفر با کد 7973TP3P + صدور گواهینامه فقط تا
000000

باز کردن فایل در مرورگر در 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 شده تبدیل کردیم، زیرا اگر نام فایل ما حاوی کاراکترهای یونیکد باشد در حالت عادی پیام خطا دریافت خواهیم کرد.

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

2 نظر
khbabak

سلام. برا فایل های word  و  excel جواب میده یا فقط برای تصویر و pdf هستش؟؟؟؟؟؟

حسین احمدی

سلام وقت بخیر. مرورگرها قابلیت باز کردن فایل های word یا excel رو ندارن و این فایل ها دانلود باید بشن.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر