检查远程站点ASP.NET VB上是否存在图像

时间:2017-05-02 16:38:34

标签: asp.net vb.net

我试图让我的网站检测服务器上是否存在图像,如果图像存在则显示,如果它没有显示另一个图像(这就是所谓的blank.png)。

我曾尝试将Server.MapPath与相对路径一起使用,但还是无法使其工作。当使用Server.MapPath并在页面加载后检查broswer时,我使用文件的完整路径(例如G:\ domain \ path \ blank.png)。

如果我使用普通路径(Dim sImagePath As String =" \ Images \ DriversNew \"')。将显示图像,但检查图像是否存在始终返回false。我假设它与文件的物理位置有关。

        'Dim sImagePath As String = Server.MapPath("Images/DriversNew/")
        Dim sImagePath As String = "\Images\DriversNew\"
        Dim sHeadshot As String = sImagePath & dsDriver.Tables("Driver").Rows(0).Item("Name") & ".png"

        If File.Exists(sHeadshot) Then
            imgDriver.ImageUrl = sHeadshot
        Else
            imgDriver.ImageUrl = sImagePath & "Blank.png"
        End If

有什么建议吗?我知道它的一些简单的东西,但是我一直在做的阅读并没有能够让它在网站上运作。

谢谢,非常感谢!

1 个答案:

答案 0 :(得分:1)

假设您的数据库列Name仅包含短文件名(即没有目录路径信息或文件夹名称),那么您可以这样做:

String nameFromDatabase = (String)dsDriver.Tables("Driver").Rows[0]["Name"] + ".png";

String appRootRelativeHttpResourcePath = "~/Images/DriversNew/" + nameFromDatabase;

String localFileSystemPath = Server.MapPath( appRootRelativeHttpResourcePath  );

if( File.Exists( localFileSystemPath ) ) {

    imgDriver.ImageUrl = appRootRelativeHttpResourcePath; // you can specify app-root-relative URLs ("~/...") here
}
else {

    imgDriver.ImageUrl = "~/Images/DriversNew/Blank.png";
}