C# 将物理路径转换为web路径asp.net

C# 将物理路径转换为web路径asp.net,c#,asp.net,path,C#,Asp.net,Path,我需要在网页中显示一个图像。但是该映像不存在于Web目录中。如果图像位于web目录下,我知道只需“./Images/TN/my.jpg”即可。但是该映像在“D:\Images\TN\my.jpg”中可用,而我的网站部署在“C:\apps\mywebsite”中 如何将“D:\Images\TN\my.jpg”路径转换为相对路径,以便图像在网页中可见?如果图像不在虚拟目录中,则无法显示图像。 尝试将其保存在应用程序文件夹中,如果不可行,则将图像作为虚拟目录保存在IIS中的文件夹中,并将其装载到应用

我需要在网页中显示一个图像。但是该映像不存在于Web目录中。如果图像位于web目录下,我知道只需“./Images/TN/my.jpg”即可。但是该映像在“D:\Images\TN\my.jpg”中可用,而我的网站部署在“C:\apps\mywebsite”中


如何将“D:\Images\TN\my.jpg”路径转换为相对路径,以便图像在网页中可见?

如果图像不在虚拟目录中,则无法显示图像。 尝试将其保存在应用程序文件夹中,如果不可行,则将图像作为虚拟目录保存在IIS中的文件夹中,并将其装载到应用程序文件夹中

以下是您需要做的(我更喜欢的方式)

  • 打开IIS管理器
  • 在“网站”下的“连接”中,选择您的网站并右键单击
  • 选择“添加虚拟目录”。。。从关联菜单中选择。
  • 在打开的对话框中输入您选择的别名,如**`“GlobalImages”`**
  • 浏览要删除的文件夹的物理路径,选择该路径,然后单击“确定” 您将在该网站的相对url中找到它。像

    www.example.com/GlobalImages

    在IIS中设置时,它会自动添加到解决方案的项目中

    如果需要,这里是MSDN链接


    最简单的方法可能是设置一个通用的图像名称并使用它。本地时,指向D:。在服务器上时,指向web路径。(至少只要您不将它们保留在虚拟目录中即可)。

    为了获取这一点,我们总是为图像或其他资源写入绝对目录。但是如果web服务器中的资源,我使用相对目录。

    你能告诉我第二个选项的URL有一步一步的过程吗?这应该标记为答案。谢谢@Shekhar_Pro:)简短回答:你不能。那将是一个巨大的安全漏洞。@leppie-Ye!但我没能弄清楚这里的安全漏洞是什么?Web应用程序和Images文件夹位于同一服务器中,那么为什么不允许这样做?想想如果“黑客”可以转到
    。/../../../foo
    ,会发生什么情况。