无法在FF和Chrome中显示byte []图像?

时间:2013-12-06 04:56:57

标签: html asp.net-mvc google-chrome asp.net-mvc-4 firefox

我在数据库中显示存储为Varbinary(Max)

的图像

在Razor中我将它转换为字符串并播种为<img>。它在IE中工作,但在FF和Chrom中没有。我尽我所能,但无法弄清楚为什么会这样。请帮忙。

请在IE(工作)和(FF&amp; Chrome都不能正常工作)中看到这个生成的html:

http://jsfiddle.net/MGY9Y/

注意: 我使用以下代码从Asp.Net MVC Razor生成这个html:

<img src=@(!Model.Photos.Any() ? "/Content/Images/Cars/CarPlaceHolder.jpg" 
:Encoding.ASCII.GetString(Model.Photos.FirstOrDefault().Document))></img>

1 个答案:

答案 0 :(得分:1)

我也在做同样的事情,但采用不同的方法.. 控制器

   using (var binaryReader = new BinaryReader(Request.Files["files"].InputStream))
            {
                Image = binaryReader.ReadBytes(Request.Files["files"].ContentLength);
            }

查看

   if (Model.Logo != null)
      {
         string imageBase64 = Convert.ToBase64String(Model.Logo);
         string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
         <img src="@imageSrc" class="self-image" />
      }
  else 
      {
         <img src=YOUR IMAGE class="self-image" />
      }

它适用于IE和Chrome