显示Web目录中的图像

时间:2017-06-20 15:03:31

标签: asp.net vb.net

使用VS 2015和ASP.net/VB。

在我的桌面上,我正在构建一个保存在远程服务器(开发服务器)上的Web应用程序。如果我使用VS运行网站,那么一切正常。

我想向用户演示Web应用程序,我在页面上遇到图像问题。我确信我有一些容易的东西,但是我无法在线找到解决方案。当我演示它时,我使用一个URL到服务器(http://DevelopmentServer/myName/website1/default.aspx),就像我在我的PC上运行它的localhost等。

在页面中,我有一个上传文件控件,用户可以使用它来上传图像。完成后,图像将显示在屏幕上。我遇到的问题是文件路径。要上传图像,我使用以下代码。

extended_bounds.max

使用网址时,上述工作正常 - http://DevelopmentServer/myName/website1/default.aspx

当我想使用以下代码显示图像时会出现问题:

Protected Sub upLoadFile(sender As Object, e As EventArgs)

    Dim fileExt As String = Path.GetExtension(chartUpload.PostedFile.FileName)
    Dim folderPath As String = "\\developmentServer\website1\charts\"
    Dim fileName As String = "Chart_" & Date.Now.ToString("ddMMyyyy")
    Dim updatedFilename As String = fileName & fileExt

    chartUpload.SaveAs(Path.Combine(folderPath & updatedFilename))
    displayCurrentChart()

End Sub

我只是得到一个黑色十字架。我确信它与我使用的路径有关,因为显然用户没有D驱动器,但如果我使用UNC路径

它也不起作用

Private Sub displayCurrentChart() Dim chartName As String = "Chart_" & Date.Now.ToString("ddMMyyyy") & ".jpg" Dim folderPath As String = "D:\Developement\Website1\charts\" Dim fullFilePath As String = folderPath & chartName chartImage.Visible = False If My.Computer.FileSystem.FileExists(fullFilePath) Then chartImage.ImageUrl = fullFilePath chartImage.Visible = True Else 'do nothing End If End Sub

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的代码可能会导致问题的一些问题/建议:

  • 保存时,使用用户提供的扩展程序保存文件,但在显示时假设它是“.jpg”
  • Path.Combine(folderPath & updatedFilename)应为Path.Combine(folderPath, updatedFilename)
  • 使用Server.MapPath获取正确的路径,例如如果Server.MapPath("/charts")位于您的网络应用程序的根目录中,则/charts

我建议您在这些方法中设置断点,以查看调试应用程序时的实际路径。然后检查图像是否存在于该路径中。