ASP.NET图像控件不显示图像

时间:2011-01-04 13:02:59

标签: asp.net image

我正在尝试显示“C:\ temp”中的图像。这是代码:

string root = "C:\temp\";

string[] files = Directory.GetFiles(root);

foreach (string f in files)
{
    if (Path.GetFileName(f).Contains(user.WorkEmail))
    {
        img1.ImageUrl = root + Path.GetFileName(f);
    }
}

如果找不到图像,我会得到一个红色“X”的缩略图 - 很好,正如预期的那样。

如果找到图像,我会得到缩略图,但不会加载/显示图像。当我右键单击缩略图并转到“属性”时,它会显示正确的文件名。

3 个答案:

答案 0 :(得分:6)

您需要将此图片作为网站的一部分才能正确显示。您需要使用相对URL:

img1.ImageUrl = '/App_Data/foo.jpg';

图像文件不能位于任何位置,当它是网站的一部分时,会向服务器发出单独的请求以获取IIS提供的图像。如果要使用位于站点根目录之外的文件夹中的图像文件,则需要write a generic handler来读取图像内容,将其流式传输到具有正确内容类型的响应,然后指向{{1}这个处理程序。

答案 1 :(得分:1)

看起来你正在创建“C:\ temp \ myfile.jpg”形式的字符串,对吗?

这不是有效的网址。您的地址需要相对于您网站的根目录(例如/content/myfile.jpg),否则需要包含协议(例如file:// c:\ temp \ myfile.jpg用于本地文件或{{3}用于网络访问)

答案 2 :(得分:0)

我遇到了这个问题并解决了它...... 你应该给图像剪切 e.g:

www.yoursite.com/folder/image.jpg

您的图片来源应为=“folder / image.jpd” 不需要root或网站。