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"); //上传失败
            }
        }

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

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

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

相关推荐
devlei7 小时前
从源码泄露看AI Agent未来:深度对比Claude Code原生实现与OpenClaw开源方案
android·前端·后端
努力的小郑8 小时前
Canal 不难,难的是用好:从接入到治理
后端·mysql·性能优化
Victor3569 小时前
MongoDB(87)如何使用GridFS?
后端
Victor3569 小时前
MongoDB(88)如何进行数据迁移?
后端
小红的布丁9 小时前
单线程 Redis 的高性能之道
redis·后端
GetcharZp9 小时前
Go 语言只能写后端?这款 2D 游戏引擎刷新你的认知!
后端
宁瑶琴11 小时前
COBOL语言的云计算
开发语言·后端·golang
普通网友11 小时前
阿里云国际版服务器,真的是学生党的性价比之选吗?
后端·python·阿里云·flask·云计算
IT_陈寒12 小时前
Vue的这个响应式问题,坑了我整整两小时
前端·人工智能·后端
Soofjan13 小时前
Go 内存回收-GC 源码1-触发与阶段
后端