我有一个ASP.net MVC 3应用程序,我想在模型中将图像存储为字节,然后将其从模型加载到html图像标记的src属性中。
e.g。
//Property in Model
public byte[] Image { get; set; }
但是当我尝试这个错误时:
<img src = "@Model.Image" alt=""/>
如何从字节加载图像?我想避免再次调用Controller将图像作为FileResult。
有可能吗?
答案 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%。