2017-10-19 61 views
0

我试图将blob数据读入html图像对象。我想避免任何文件创建和处理(除非不可避免)。我当前的代码是实体框架将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倍大小的示例数据)

回答

0

我只需要读取图像数据为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

+1

尼斯送,我正要指向相同。 – Hackerman

+0

感谢您检查我的问题:) – Samra