【问题标题】:Entity Framework Reading Blob data into html img实体框架将 Blob 数据读入 html img
【发布时间】:2018-03-30 23:19:47
【问题描述】:

我正在尝试将 blob 数据读入 html 图像对象。我想避免在此过程中创建和处理任何文件(除非不可避免)。我当前的代码是

数据表:

studentID | firstname | photo
----------+-----------+------------
93        |Eva        | Blob data

StudentEntity.cs:

public class ShortStudent
{
    public string firstname { get; set; }
    public int studentid { get; set; }
    public string photo { get; set; }
}

这些数据然后按如下方式发送到视图

ShortStudent sd = new ShortStudent();

sd.firstname = <name from db>;
sd.photo = Convert.ToBase64String(Serialize(<Blob data from db>));
....
return Json(sd, JsonRequestBehavior.AllowGet);

序列化:

private byte[] Serialize(string p)
{
    var binaryFormatter = new BinaryFormatter();
    var ms = new MemoryStream();
    binaryFormatter.Serialize(ms, p);
    return ms.ToArray();
}

Javascript:

<img src="data:image/gif;base64,#= data.photo #" alt="<image not found>" />

如果我输入一些示例数据,它会正确显示,但不是来自数据库的数据(序列化和转换后的 db 数据大小是示例数据的 3 倍)

【问题讨论】:

    标签: c# html image entity-framework blob


    【解决方案1】:

    我只需要将图像数据读取为 byte[] 而不是字符串,它就可以工作了。

    StudentEntity.cs

    public class ShortStudent
    {
      public string firstname { get; set; }
      public int studentid { get; set; }
      public byte[] photo { get; set; }
    }
    

    改变

    sd.photo = Convert.ToBase64String(Serialize(<Blob data from db>));
    

    string img = Convert.ToBase64String(<Blob data from db>);
    

    并以 JSON 格式发送

    【讨论】:

    • 感谢您检查我的问题 :)
    猜你喜欢
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多