修改头像2

本文详细介绍了如何从数据库中回填用户头像图片至Web界面,并实现图片的更新保存功能。通过C#代码示例,展示了从数据库读取二进制图片数据并转换为图片格式的过程,以及在用户更新头像时如何处理上传的图片文件,将其转换为二进制数据存储至数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接着上一篇,页面的代码写完了,就到控制器写相关代码。
这个方法是回填我数据库那张用户表里的图片数据,因为图片是二进制存储在数据库的,使用要转回图片形式。

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保存成功
在这里插入图片描述

代码可能有点多,我能力不够,就只能这样了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值