2

如何在 asp.net 中显示存储在网络上的图像(使用 c#)。我希望 img src 是下面给出的:

\\pgapp\folder\image.jpg,其中 pgapp 是网络上的共享驱动器。

我正在使用这些代码,但它没有在网页上显示图像。

originalImage2.ImageUrl=@"\\pgapp\folder\image.jpg";

或者

originalImage2.Attributes["src"]=ResolveUrl(@"\\pgapp\folder\image.jpg");

<div ID="imgContainer" runat="server" style="width: 400px; height: 400px;  overflow:auto; border: solid 1px black;
                    padding: 10px; margin-bottom: 5px;" >

                    &nbsp;<asp:Image ID="originalImage2" runat="server" />
                </div>
4

3 回答 3

2

你会遇到两个问题:

  • 浏览器通常不能访问服务器共享(除非它在同一个网络上)。您需要以某种方式通过您的网站公开图像,以便它像http://myserver/image/image1.jpg一样可见
  • “NTLM one hop” - 如果您开始通过服务器渲染图像,您的服务器将无法从远程服务器读取文件。你只需要验证你是否有问题并阅读它。
于 2012-04-04T01:58:42.043 回答
2

要在用户 Web 浏览器中显示存储在网络上的图像,请执行以下操作:

将图像转换为 base64 对应并显示:

// PhotoId is the network file path and name.
string photoId = "\\Photos\2015-May\390828d1-8f20-4fe9-9287-13d03894e9c0.jpg"

// Call to display the networked images.
lbl_images.Text += "<img src='" + this.PhotoBase64ImgSrc(photoId) + "' height='60px' width='60px' alt='photo' />";

// Supporting function that converts an image to base64.
protected string PhotoBase64ImgSrc(string fileNameandPath)
{
    byte[] byteArray = File.ReadAllBytes(fileNameandPath);
    string base64 = Convert.ToBase64String(byteArray);

    return string.Format("data:image/gif;base64,{0}", base64);
}
于 2015-05-26T11:25:46.903 回答
1

如果要显示存储在网络路径中的图像,请在 IIS 中更改以下设置,

  1. 导航到 IIS。
  2. 导航到站点文件夹中的网站。
  3. 选择应用程序网站并导航到右侧的操作菜单,然后单击查看虚拟目录。 在此处输入图像描述
  4. 单击添加虚拟目录并将别名指定为“图像”,将物理路径指定为“网络驱动器路径”。 在此处输入图像描述 在此处输入图像描述
  5. 测试设置并保存。
  6. 刷新应用程序池并测试图像是否正在渲染。
于 2021-06-07T18:37:35.140 回答