接着上一篇,页面的代码写完了,就到控制器写相关代码。
这个方法是回填我数据库那张用户表里的图片数据,因为图片是二进制存储在数据库的,使用要转回图片形式。
public ActionResult HeadImage()
{
var UserID = Session["UserID"];
int User = Convert.ToInt32(UserID);
try
{
var studentImg = (from tbUser in myEntities.S_User
where tbUser.UserID == User
select new
{
tbUser.portrait
}).Single();
byte[] stuImg = studentImg.portrait;
return File(stuImg, @"image/jpg");
}
catch (Exception e)
{
Console.WriteLine(e);
return Json("failed", JsonRequestBehavior.AllowGet);
}
}
修改保存:
public ActionResult UpdateHeadImage(S_User pwUser, HttpPostedFileBase fileStudentImage)
{
var UserID = Session["UserID"];
int User = Convert.ToInt32(UserID);
try
{
S_User dbUser = (from tbUser in myEntities.S_User
where tbUser.UserID == User
select tbUser).Single();
//图片
if (fileStudentImage != null && fileStudentImage.ContentLength > 0)
{
//存放图片的变量
byte[] imgFile = null;
//变量长度
imgFile = new byte[fileStudentImage.ContentLength];
//读取图片存入变量
fileStudentImage.InputStream.Read(imgFile, 0, fileStudentImage.ContentLength);
dbUser.portrait = imgFile;
}
//修改用户表图片信息
myEntities.Entry(dbUser).State = System.Data.Entity.EntityState.Modified;
//保存数据库
myEntities.SaveChanges();
return Json(true, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
Console.WriteLine(e);
}
return Json(false, JsonRequestBehavior.AllowGet);
}
效果:
1点击修改
2弹出模态框
3选择图片文件
4保存成功
代码可能有点多,我能力不够,就只能这样了。