如何从网络位置在网页上显示图像?

时间:2013-09-03 14:52:44

标签: asp.net iis iis-7.5

我有一个内部使用的Web应用程序,指向网络驱动器上的图像。

当我在VS中测试它时,它可以工作,但是一旦发布,图像就不会加载。

我确定它是IIS中的一个设置,但我无法弄清楚它是什么。

每台计算机都已登录到域中,应允许有权访问的人查看图像。

我尝试将身份验证更改为模拟,但没有运气。

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

我最终通过更改图片的加载方式来解决问题。我没有使用网络路径作为src,而是转而使用通用处理程序来渲染图像。

所以,现在图片标签看起来像

<img alt="Item Image" src="/ImageHandler.ashx?f=100" />

使用以下代码将图像加载到处理程序中。

public void ProcessRequest(HttpContext context)
{
    var f = Convert.ToString(context.Request.QueryString.Get("f"));
    var path = string.Format("//network-share/images/{0}.jpg", f);
    var image = Image.FromFile(path);
    context.Response.Clear();
    context.Response.ClearHeaders();
    image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
    context.Response.ContentType = "image/jpeg";
    HttpContext.Current.ApplicationInstance.CompleteRequest();
}

虽然我仍想弄清楚权限问题,但这是一个更好的整体解决方案。由于指向文件位置似乎存在跨浏览器兼容性问题,因此您不会在此处使用。