چگونه در 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 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود