在我的网页中,我使用的是图片标记,src属性指向共享网络位置,即(/server/images/image1.png)。确切的脚本是"<img src="file://///server/images/image1.png"
。它在IE中运行良好。在firefox中,当我使用firebug进行调试时显示图像,但它没有显示在页面(用户视图)中。即使它复制此位置并将其放在firefox地址栏中工作正常。使用img标签时会出现什么问题也是什么解决方案?提前谢谢。
答案 0 :(得分:6)
将此作为答案,以便为像我这样正在搜索如何显示网络图像的其他人提供帮助,并在前3个搜索引擎结果中找到了这个SO帖子。它似乎比在响应中发出图像的java servlet更好的答案。
FireFox不会显示网络图像,所以我创建了一个扩展HtmlHelper的MVC助手。
public static class ImageHelper
{
/// <summary>Converts a photo to a base64 string.</summary>
/// <param name="html">The extended HtmlHelper.</param>
/// <param name="fileNameandPath">File path and name.</param>
/// <returns>Returns a base64 string.</returns>
public static MvcHtmlString PhotoBase64ImgSrc(this HtmlHelper html, string fileNameandPath)
{
var byteArray = File.ReadAllBytes(fileNameandPath);
var base64 = Convert.ToBase64String(byteArray);
return MvcHtmlString.Create(String.Format("data:image/gif;base64,{0}", base64));
}
}
在MVC视图中使用如下:
using
<img src="@Html.PhotoBase64ImgSrc(image)" height="60px" width="60px" alt="photo" />
这里的图像&#39; in @ Html.PhotoBase64ImgSrc(image)是一个纯粹的网络UNC,例如。
//Photos/ebaebbed-92df-4867-afe8-0474ef8644eb.jpg
答案 1 :(得分:2)
<img id="image1" runat="server" ImageUrl=<%# Eval("Value") %>/>
在后面的代码中执行此操作:
image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(bytes);
字节是byte[]
。
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["FileName"] != null)
{
// Read the file and convert it to Byte Array
string filePath = "C:\\Users\\Public\\Pictures\\Sample Pictures\\";
string filename = Request.QueryString["FileName"];
string contenttype = "image/" + Path.GetExtension(filename).Replace(".", "");
FileStream fs = new FileStream(filePath + filename, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
br.Close();
fs.Close();
image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(bytes);
}
}
你完成了。将显示图像。
答案 2 :(得分:0)
解决方案通常是:使用网络服务器。
答案 3 :(得分:0)
你可能必须这样做。
<img src="../server/images/image1.png" />
添加“../”后,它基本上会告诉您的浏览器返回一个目录,以便在“../”之后搜索该位置。
文件位于何处以及HTML文档的位置在哪里?
<强>更新强>
我也在网络服务器上完成所有工作......这应该可以解决问题。
<img alt="" src="file:///SERVER:/FOLDER/IMAGES/image1.png" />
谢谢, 亚伦
答案 4 :(得分:-1)
我编写了一个servlet,它使用Java文件流从LAN读取文件并将其设置为响应并完成操作。感谢所有人的宝贵回应。