当我将图像 URL 属性设置为 App_Data 文件夹中的 asp 图像控件时,图像显示在页面设计视图中,但不显示在浏览器中。

<form id="form1" runat="server">
<div>
    <asp:Image ID="Image1" runat="server" ImageUrl="~/App_Data/p3.jpg" />
</div>
</form>

看起来很简单,但它没有显示图像。

有帮助吗?

解决方案

App_Data文件夹是用于诸如数据库文件等数据保留的特殊的文件夹,并且将不是呈现出在网络上的任何内容。这是由设计,并有意和不能被改变(据我所知)。

您的图像也绝对不属于入App_Data子目录 - 把它们放到一个文件夹/images或更合适些

其他提示

图片不应该被存储在文件夹App_Data。这个被保留用于该不应该被直接提供给用户的文件,如.MDB数据库文件等。

我将创建一个/Resources/Resources/Images文件夹关闭站点的根目录。

我不同意。当在App_Data文件夹中隐藏的图像,并创建自己的HTTP处理程序您保护您的图像,可以在图像上添加版权文本等你展示在他们面前。

我这样做时,我有HIGHRES照片,我不wan't大家得到的,并且具有HTTP处理程序低档次的形象,穿上copyrighttext。太好了!

好了,时间做不可能的事...虽然你不能直接从App_Data文件夹中加载图像,你可以编写自己的HTTP处理程序将读取App_Data文件夹的图片文件,并将其发送回客户端。这将是一个变通办法,但在一般情况下,该数据意味着,只有您的应用程序可以读取数据。通过具有处理程序读取数据时,仍然可以返回这些图像。

但它是不好的做法,如果你是为我工作,你会立即开除!

这要看! ;)

有充分的理由在App_Data保存图像。在您的用户可以上传自己的文件或标志它会保护这些文件,而不是让他们给其他用户或公职访问的情况。

最重要的是,它具有每服务器/部署实例不同的文件的唯一途径。

在部署你的应用程序,你可以通过启用保护这些文件由每个服务器实例的用户上传的部署中的配置“排除从的App_Data文件。”

如果你想通过URL来访问这些文件使用下载处理,downloadfile.ashx例如。

希望这有助于。

可以提供 App_Data 文件夹中的内容,但不能直接提供。
无法直接访问,也不建议间接访问。 这是故意的。

但是添加虚拟路径可以做到这一点。看到这个 问题


我认为前三个答案符合您的目的。
将图像存储在全局或本地资源文件夹中,这些也是特殊文件夹,可以通过编程方式访问内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top