2012-04-04 71 views
1

如何显示(使用C#)存储在asp.net网络上的图像。我想IMG SRC要在一个如下:如何显示在asp.net(C#)存储在网络上的图像

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

我使用这些代码,但它不显示网页上的图像。

[email protected]"\\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> 
+0

哪里图片src指向当你做调试? – 2012-04-04 02:00:25

+0

Webforms或MVC? – om471987 2012-04-04 02:36:44

回答

2

你会打2个问题:

  • 浏览器通常无法访问服务器共享(除非它是在同一网络上)。您需要通过您的网站暴露图像莫名其妙所以可见像http://myserver/image/image1.jpg
  • “NTLM一跳” - 你的服务器将不能够如果你开始通过您的服务器渲染图像读取来自远程服务器的文件。你只需要验证你是否有问题并阅读它。
1

显示存储在用户的网络浏览器上的图像做类似如下:

转换为它的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); 
} 
+0

如何在WebForms中显示图像? – sojim2 2016-04-23 00:52:24

+0

这不起作用,因为现代浏览器出于安全原因不允许访问网站缓存之外的文件。因此,如果它是'C:\ outsidecache \ file.jpg',它将无法工作。我尝试了'\\ sharedfolder \ file.jpg'和'file:// sharedfolder/file.jpg',但它不起作用。 – sojim2 2016-04-25 16:48:22

+0

@ sojim2我删除了我的意见,因为这是错误的...我说的是不是windowsforms ... web表单我在一个web表单应用程序中使用这个......你必须拥有访问的帐户下运行在IIS应用程序池网络位置......然后应用程序池可以读取图像文件,将其转换为Base64并将其发送到浏览器作为一个字符串....然后使用它像 2016-04-26 07:59:47