实体框架阅读的Blob数据转换成HTML IMG(Entity Framework Reading

2019-10-29 08:33发布

我想读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倍大小的示例数据)

Answer 1:

我只是不得不读的字节的图像数据[],而不是字符串,它的工作。

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



文章来源: Entity Framework Reading Blob data into html img