我使用HttpPostedFileBase将上传的图像保存到我的数据库中,如下所示:
private void Upload(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
// save the file to hard drive, we can delete it later
var FileName = Path.GetFileName(file.FileName);
var FilePath = Path.Combine(Server.MapPath("~/Content/Images/Uploads/"), FileName);
file.SaveAs(FilePath);
byte[] FileBytes;
using (var Fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
using (var Reader = new BinaryReader(Fs))
{
FileBytes = Reader.ReadBytes((int)Fs.Length);
}
}
OrtundEntities db = new OrtundEntities();
ImageModel Image = new ImageModel
{
Data = FileBytes,
};
db.Images.Add(Image);
db.SaveChanges();
//System.IO.File.Delete(filePath);
}
}
现在我将文件字节保存在我的数据库中。
显然我不能使用HTML <img
标签来显示图像,所以我应该在这里使用哪种传送机制?我是否应该保留文件并将文件路径与(或代替)字节数组一起存储?
答案 0 :(得分:0)
您可以执行以下操作
byte[]
转换为Base64字符串,此处为sample如何转换object
代码或img
显示图片您的代码应如下所示:
var base64 = Convert.ToBase64String(bytes); // bytes is the binary data converted to byte array
然后在你看来
<img alt="" src='@(string.Format("data:image/jpeg;base64,{0}",Model.Base64))'/>
或
<object data='@(string.Format("data:image/png;base64,{0}",Model.Base64))'></object>
希望这会对你有所帮助