0
我已經搜索了一段時間,沒有快樂。我試圖將圖像保存爲我的SQL數據庫作爲字節數組,然後我試圖稍後顯示它。顯示部分不工作。我不知道這是保存還是顯示問題。保存似乎工作正常,我可以看到我的SQL表中的「二進制數據」。有什麼建議麼?在MVC中保存/顯示圖片時遇到了一些問題4
發生了什麼事情是我的頁面上出現了破碎的圖像圖標。即使我手動轉到網址,例如... /治療/ LoadImage/14它壞了。
模型包含這在我的表定義:
public byte[] Photo { get; set; }
創建視圖:
<div class="editor-label">
@Html.LabelFor(model => model.Photo)
</div>
<div class="editor-field">
<input type="file" name="photo" />
</div>
創建控制器:
[HttpPost]
public ActionResult Create([Bind(Exclude = "Photo")]Treatment treatment)
{
if (ModelState.IsValid)
{
treatment.Photo = GetByteArrayFromFile();
treatment.WebOrder = db.Treatments.Count();
db.Treatments.Add(treatment);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.TreatmentTypeId = new SelectList(db.TreatmentTypes, "Id", "Name", treatment.TreatmentTypeId);
return View(treatment);
}
private byte[] GetByteArrayFromFile() {
int fileLength = Request.Files["photo"].ContentLength;
byte[] byteArray = new byte[fileLength];
return byteArray;
}
顯示視圖:
<div class="display-label">
@Html.DisplayNameFor(model => model.Photo)
</div>
<div class="display-field">
<img src="@Url.Action("LoadImage", new { Id = Model.Id })" />
</div>
的LoadImage控制器:
public ActionResult LoadImage(int Id) {
byte[] bytes = db.Treatments.Find(Id).Photo;
return File(bytes, "image/jpeg");
}
我已經加入:
@using (Html.BeginForm("Create", "Treatments", FormMethod.Post, new { enctype = "multipart/form-data" })) {
// View Code Omitted
}
我創建視圖。
我的代碼有什麼基本錯誤嗎?有什麼建議麼?謝謝。