تا %60 تخفیف خرید برای 7 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

باز کردن فایل در مرورگر در 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 نظر
افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند