从Byte [] Asp.Net MVC 3加载Image Src

时间:2012-09-05 23:02:33

标签: c# asp.net-mvc-3 image src

我有一个ASP.net MVC 3应用程序,我想在模型中将图像存储为字节,然后将其从模型加载到html图像标记的src属性中。

e.g。

//Property in Model
 public byte[] Image { get; set; }

但是当我尝试这个错误时:

<img src = "@Model.Image" alt=""/>

如何从字节加载图像?我想避免再次调用Controller将图像作为FileResult。

有可能吗?

2 个答案:

答案 0 :(得分:8)

最简单的方法是:

<img src="data:image/png;base64,@System.Convert.ToBase64String(Model.Image)" alt=""/>

这假设是PNG有效负载,并且不受传统浏览器的良好支持。

我实际上建议将其保存到磁盘并让您的Web服务器单独托管它。

答案 1 :(得分:2)

您可以直接将图像嵌入为base64编码的字符串。

示例:

<img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub/
/ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcpp
V0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" 
width="16" height="14" alt="embedded folder icon">

在Internet Explorer 8中,数据大小限制为32 KiB。此外,base64的开销为33%。

更多信息:http://en.wikipedia.org/wiki/Data_URI_scheme