我正在尝试显示“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”的缩略图 - 很好,正如预期的那样。
如果找到图像,我会得到缩略图,但不会加载/显示图像。当我右键单击缩略图并转到“属性”时,它会显示正确的文件名。
答案 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或网站。