我不知道为什么,但我无法在我的视图中显示数据库中的图像。它出现在图像的正确分辨率中,但它基本上是透明的。我不确定我保存图像的方式是否错误(不应该)或者是否显示在图像中。我很抱歉,如果我的问题太基础了,但我对这个问题的关注比以往要多:(
attr值: SRC = “数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAASwAAADhCAYAAAByfIirAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAANL5JREFUeNrsnQl8VNXZ / 8 / MZJIJ2UMWIAkJCWFLwhpWAQEBKasoBkUUEBBpq7Xaoi34V2yp / PU =”
在这里'我的模型看起来:
public int CompId { get; set; }
public byte[] ImageData { get; set; }
[NotMapped]
public HttpPostedFileBase UploadImage { get; set; }
[NotMapped]
public string ImageBase64 => System.Convert.ToBase64String(ImageData);
public string CompanyName { get; set; }
public string CompanyAddress { get; set; }
行动方法:
public ActionResult Create([Bind(Include = "CompId,ImageData,CompanyName,CompanyAddress,CompanyCountry,CompanyCity,CompanyPostalCode,CompanyPhoneNumber,EmailCA")] Company company, HttpPostedFileBase UploadImage)
{
if (ModelState.IsValid)
{
byte[] buf = new byte[UploadImage.ContentLength];
UploadImage.InputStream.Read(buf, 0, buf.Length);
company.ImageData = buf;
db.Companies.Add(company);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(company);
}
观点:
@model eksp.Models.Company
@{
ViewBag.Title = "Index";
}
<h2>Details</h2>
<div>
<h4>Company</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ImageData)
</dt>
<dd>
<img src="data:image/png;base64,@Model.ImageBase64" />
</dd>
任何帮助将不胜感激。
答案 0 :(得分:3)
猜猜你所展示的价值是什么:
SRC = “数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAASwAAADhCAYAAAByfIirAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAANL5JREFUeNrsnQl8VNXZ / 8 / MZJIJ2UMWIAkJCWFLwhpWAQEBKasoBkUUEBBpq7Xaoi34V2yp / PU =”
惊喜:300x225空PNG图像(透明背景):
因此,如果您希望在浏览器中看到它们呈现,请确保在数据库中放置一些真实图像。否则,你将在浏览器中获得的是300x225像素的空白(这正是我们从你的截图中看到的)。
话虽这么说,你的代码很好,你正在使用的数据让你认为存在问题。