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

spu*_*pud 1 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果找不到图像,我会得到一个带有红色"X"的缩略图 - 正如预期的那样.

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

Dar*_*rov 6

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

img1.ImageUrl = '/App_Data/foo.jpg';
Run Code Online (Sandbox Code Playgroud)

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