我想使用带有实体框架的MVC将用户配置文件保存到数据库中,包括图像文件。
我写了下面的代码,我总是得到这个例外:
你可以帮我解决这个问题吗?谢谢。“输入不是有效的Base-64字符串,因为它包含非基数64 字符,两个以上的填充字符或非空白字符 填充字符中的字符“。
我的代码:
用户控制器:
public ActionResult AddUser()
{
return View();
}
[HttpPost]
public ActionResult AddUser(User u, HttpPostedFileBase file)
{
PROJECTDBEntities context = new PROJECTDBEntities();
if (file != null && file.ContentLength > 0)
{
if (ModelState.IsValid)
{
u.image = new byte[file.ContentLength];
file.InputStream.Read(u.image, 0, file.ContentLength);
context.Users.Add(u);
context.SaveChanges();
}
}
return View("GetUser",context.Users);
}
AddUser的观点:
@using (Html.BeginForm("AddUser","User",FormMethod.Post,new { enctype = "multipart/form-data" }))
{
<p>UserNo: </p> @Html.TextBoxFor(a=>a.userNo)
<p>Name: </p>@Html.TextBoxFor(a=>a.name)
<p>Surname: </p>@Html.TextBoxFor(a => a.surname)
<p>Email: </p>@Html.TextBoxFor(a=>a.email)
<p>Image: </p> <input type="file" name="image"/>
<input type="submit" value="Save" />
}
模型:(实体框架,我在视图中使用这个EF强类型模型)
public int id { get; set; }
public Nullable<int> userNo { get; set; }
public string name { get; set; }
public string surname { get; set; }
public string email { get; set; }
public byte[] image { get; set; }