سناریوی زیر را در نظر بگیرید:
در حال تهیهی یک CMS هستید و طبق سفارش مشتری قسمتی را برای نمایشگاه محصولات در نظر گرفتهاید. مشتری در نظر دارد در وب سایت خود، محصولات عرضه شده را به صورت یک گالری نمایش دهد و برای اینکار شما از یک فایل آپلودر مثل Kendo Uploader استفاده کردهاید. در این حالت برای ذخیرهی فایلها بر روی دیسک، از متد MapPath به صورت زیر استفاده میکنید:
var physicalPath = Path.Combine(Server.MapPath("~/Content/Images"), fileName);
خروجی متد بالا چیزی شبیه زیر است :
C:\\YourProject\\Content\\Images\\1.jpg
اما برای نمایش عکسها باید بتوانیم مسیر عکسهای ذخیره شدهی در فایل فیزیکی را به آدرس سرور، یا همان آدرس مجازی تبدیل کنیم. برای اینکار میتوان از یک متد الحاقی به صورت زیر استفاده نمود :public static class PathConverter { public static string PhysicalToVirtualPathConverter(this HttpServerUtilityBase utility, string path, HttpRequestBase context) { return path.Replace(context.ServerVariables["APPL_PHYSICAL_PATH"], "/").Replace(@"\", "/"); } }
و برای استفاده از متد بالا به صورت زیر عمل میکنیم :
image.ImagePath = Server.PhysicalToVirtualPathConverter(PhysicalPath, Request);