【问题标题】:ImageUrl trying to display an image outside of project rootImageUrl 试图在项目根目录之外显示图像
【发布时间】:2010-01-05 22:23:24
【问题描述】:

我在 asp.net 中使用两个不同的网站。在第一个项目中,我将一些图像上传到项目根目录下的特定文件夹并仅将文件名保存在数据库中,现在我试图在第二个项目的某个页面上显示这些图像我知道数据库中的文件名和图像文件夹作为绝对 pat 但我无法显示图像,即使在查看 firebug 时图像 src 是正确的src="D:/MyFolder/image.jpg" 图像不显示,可能是因为它没有指向正确的目录。 我也尝试过使用 Server.MapPath,然后是我的 D 位置,但仍然没有成功。

我确信之前有人遇到过同样的情况,并且真的希望得到一些提示来解决这个问题。 提前谢谢你

【问题讨论】:

    标签: asp.net server.mappath


    【解决方案1】:

    我找到了我的解决方案,很奇怪,但我之前没有发现它。始终可以使用项目的 URL http://www.yourwebsite.com/images/photo.png 访问项目下上传的图片,现在在第二个项目中,您可以使用此 URL 引用图像并连接我存储在数据库中的文件名。我认为这是最好的解决方案,并且不改变我认为可能带来其他问题的代码访问安全性。无论如何,谢谢你们。

    【讨论】:

      【解决方案2】:

      如果您想显示项目中没有的图像(我的意思是它存在于其他项目或其他驱动器中),只需在 IIS 中创建虚拟目录

      1. 转到“运行”,输入inetmgr
      2. 右键单击您的项目并添加虚拟目录
      3. 提供别名和路径,使其类似于项目中的文件夹

      【讨论】:

        【解决方案3】:

        我认为默认情况下您不能在应用程序路径之外提供文件。它被称为代码访问安全性。你可以在这里阅读:
        http://msdn.microsoft.com/en-us/library/930b76w0.aspx

        您可以通过在 web.config 中将信任级别更改为“高”来解决此问题:
        http://msdn.microsoft.com/en-us/library/tkscy493.aspx

        我不建议对任何可从外部访问的网站执行此操作。事实上,根据您托管应用程序的方式/位置,此选项可能会受到限制。

        【讨论】:

          【解决方案4】:

          您只能“链接”到与同一项目相关的文件或通过绝对 URL 托管在另一个站点上的文件。

          如果您想为应用程序/网站之外的文件(在磁盘上或在数据库中)提供服务,您将需要构建一种机制来获取文件并将二进制文件写入浏览器,设置 MIME 类型等。这是最好的使用 HttpHandler 完成。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-10-09
            • 2017-03-16
            • 2023-04-09
            • 1970-01-01
            • 2013-07-19
            • 1970-01-01
            相关资源
            最近更新 更多