2017-10-19 98 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