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