我成功地将图像作为二进制图像存储在数据库中。
我想在编辑表单中显示这些图像以修改并保存更改。
显示数据库中的二进制图像时,以 Edit.cshtml 形式抛出 System.OutOfMemoryException'。
有人可以纠正我的代码吗?
型号类别:
public class Accommodation
{
[Key]
public string A_Unique_Id { get; set; }
public byte[] Picture1 { get; set; }
public byte[] Picture2 { get; set; }
public byte[] Picture3 { get; set; }
}
// 获取:/住宿/编辑/5
public ActionResult Edit(string id)
{
Accommodation accommodation = db.Accommodation.Find(id);
ViewBag.SelectedAustraliaStateId = new SelectList(db.AustraliaStates, "AustraliaStateId", "AustraliaStateName", accommodation.SelectedAustraliaStateId);
return View(accommodation);
}
// POST: /住宿/编辑/5
[HttpPost]
public ActionResult Edit(Accommodation accommodation)
{
if (ModelState.IsValid)
{
db.Entry(accommodation).State = EntityState.Modified;
//the following line is for re-assigning back the DDL modified value.
accommodation.State = accommodation.SelectedAustraliaStateId;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(accommodation);
}
编辑.cshtml
<div class="editor-label">
@Html.LabelFor(model => model.Picture1)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Picture1)
@Html.ValidationMessageFor(model => model.Picture1)
</div>
错误信息:行中抛出“System.OutOfMemoryException”类型的异常@Html.EditorFor(model => model.Picture1)
在您的视图中显示图像
View
<form method="post" enctype="multipart/form-data">
@{
if (Model.Picture1 != null)
{
string imageBase64 = Convert.ToBase64String(Model.Picture1);
string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
<img src="@imageSrc" width="100" height="100" />
}
}
<input type="file" name="photo" id="files" accept="image/*;capture=camera">
<button type="button">Submit</button>
</form>
控制器
[HttpPost]
public ActionResult Edit(Accommodation accommodation)
{
if (Request.Files["files"] != null)
{
byte[] Image;
using (var binaryReader = new BinaryReader(Request.Files["files"].InputStream))
{
Image = binaryReader.ReadBytes(Request.Files["files"].ContentLength);
}
}
accommodation.Picture1=Image;
//your code to save data
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)