我试图让我的网站检测服务器上是否存在图像,如果图像存在则显示,如果它没有显示另一个图像(这就是所谓的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
有什么建议吗?我知道它的一些简单的东西,但是我一直在做的阅读并没有能够让它在网站上运作。
谢谢,非常感谢!
答案 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";
}