【问题标题】:Load Image Src from Byte[] Asp.Net MVC 3从字节 [] Asp.Net MVC 3 加载图像源
【发布时间】:2012-09-06 07:13:06
【问题描述】:

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

例如

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

但是当我尝试这个时它会出错:

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

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

有可能吗?

【问题讨论】:

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


    【解决方案1】:

    最简单的方法是这样的:

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

    这假定为 PNG 有效负载,旧版浏览器不太支持。

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

    【讨论】:

    • 这也适用于没有 png 图像类型。
    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2015-12-05
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      相关资源
      最近更新 更多