ASP.NET MVC+EntityFramework图片头像上传

1,先展示一下整体的效果

2,接下来展示用户添加以及上传头像代码、添加用户界面

前端代码如下:

复制代码
  <div class="form-group">
            @Html.LabelFor(model => model.img, "头像:", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @*@Html.EditorFor(model => model.img, new { htmlAttributes = new { @class = "form-control" } })*@
                <input class="width-main input" type="file" datatype="*" id="pic" name="pic" value="" accept="image/*" onchange="upload(event)">
                <input type="hidden" name="img" id="img" value="" />
                <div id="showImg"></div>
            </div>
        </div>

JS代码

javascript 复制代码
<script>
    //实现异步上传
    function upload(event) {
        var imgPath = $("#pic").val();
        console.log(imgPath);
        //判断上传文件的后缀名
        var strExtension = imgPath.substr(imgPath.lastIndexOf('.') + 1);

        if (strExtension != 'jpg' && strExtension != 'gif' && strExtension != 'png' && strExtension != 'bmp') {
            alert("请选择图片文件");
            return;
        }
        //实现文件上传操作
        if (event.target.files[0].type.search('image') !== -1) {
            //实现文件图片的上传
            var formData = new FormData($("#myForm")[0]);//用于创建一个文件流对象
            //formData.append('pic', $("#img")[0]); //添加文件流 (流名称,流)
            //console.log(formData);
            $.ajax({
                url: "/Upload/file",
                type: "post",
                cache: false,
                processData: false,
                contentType: false,
                data: formData,
                success: function (res) {
                    console.log(res);
                    if (res.trim() == "209") {
                        alert("请选择图片!");
                        return;
                    }
                    if (res.trim() == "300") {
                        alert("上传的图片不能为空图片!");
                        return;
                    }
                    if (res.trim() == "400") {
                        alert("上传的图片失败!");
                        return;
                    }
                    //alert("上传成功!");
                    $("#showImg").html("<img src='" + res + "' width='50' height='50' /><p style='color:red;'>上传成功!</p>");
                    //设置上传的图片地址
                    var res = res.trim(); //去除图片的前后空白字符
                    $("#img").val(res);
                },
                error: function (res) {
                    alert("上传异常!");
                }
            });
        } else {
            alert('只支持上传图片');
        }
    }
   
</script>

控制器图片上传的方法

cs 复制代码
  //图片上传
        [HttpPost]
        public ActionResult file(HttpPostedFileBase pic)
        {
            try
            {
                if (pic != null)
                {
                    if (pic.ContentLength == 0)
                    {
                        return Content("209"); //获取上传的图片
                    }
                    else
                    {
                        //判断文件的后缀名,是否符合条件
                        string backFix = Path.GetExtension(pic.FileName);
                        if (backFix != ".gif" && backFix != ".png" && backFix != ".jpg" && backFix != ".jpeg")
                        {
                            return Content("210"); //格式不对
                        }
                        string fileName = DateTime.Now.ToString("MMddHHmmss") + backFix;
                        string strPath = Server.MapPath("~/Content/pic/" + fileName);
                        pic.SaveAs(strPath);
                        //返回路径
                        return Content("/Content/pic/" + fileName);
                    }
                }
                else
                {
                    return Content("300"); //图片不能为空
                }
            }
            catch (Exception )
            {
                return Content("400"); //上传失败
            }
        }

数据库保存的是文件的已经重新命名的路径,数据库保存的图片如下

在列表页面如何具体显示头像呢,代码如下所示:

以上就是头像图片的上传展示,谢谢.

相关推荐
字节跳动数据库几秒前
火山引擎 RDS MySQL 向量索引:把高性能向量检索带到 MySQL 上
人工智能·后端·mysql
拖孩7 分钟前
用 AI 重解千年观音灵签,做了一个微信小程序,每天摇一摇,命运给你回应
前端·后端·微信小程序
Python私教8 分钟前
AI Agent 可观测性不只是日志:一套可回放的多步执行链
人工智能·后端·python
Python私教21 分钟前
模型越强越不需要 Skills?我把 AI 编程能力拆成 4 层
人工智能·后端·python
名字还没想好☜1 小时前
Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流
开发语言·后端·golang·go·iphone
喵个咪2 小时前
GoWind Shop 架构剖析:一个 REST 请求穿越三服务 BFF 的七环链路
vue.js·后端·go
喵个咪2 小时前
GoWind Shop 安全设计:JWT 鉴权、Ent 行级隔离、防篡改审计与四个真实漏洞修复
vue.js·后端·go
喵个咪2 小时前
GoWind Shop:一个 proto 文件如何生成后端、前端、文档、校验六路代码
vue.js·后端·go
用户7783366132112 小时前
从 0 搭一个关键词排名监控:核心思路 + 可运行代码
后端·python·api
喵个咪2 小时前
GoWind Shop 出海实战:多语言商品内容怎么存、怎么录、怎么按 locale 取
vue.js·后端·go