zoukankan      html  css  js  c++  java
  • [实战]MVC5+EF6+MySql企业网盘实战(4)——上传头像

    写在前面

    最近又开始忙了,工期紧比较赶,另外明天又要去驾校,只能一个功能一个功能的添加了,也许每次完成的功能确实不算什么,等将功能都实现了,然后在找一个好点的ui对前端重构一下。

    系列文章

    [EF]vs15+ef6+mysql code first方式

    [实战]MVC5+EF6+MySql企业网盘实战(1)

    [实战]MVC5+EF6+MySql企业网盘实战(2)——用户注册

    [实战]MVC5+EF6+MySql企业网盘实战(3)——验证码

    [实战]MVC5+EF6+MySql企业网盘实战(4)——上传头像

    示例

    这里采用最简单的form中上传文件的方式。当然也可以使用插件什么的。

                 //提交到指定UserInfo下的Register中,并指定提交方式post

    @using (Html.BeginForm("Register", "UserInfo", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        @Html.AntiForgeryToken()  //在Html表单里面使用了@Html.AntiForgeryToken()就可以阻止CSRF攻击。
    
        <div class="form-horizontal">
            <h4>UserInfo</h4>
            <hr />
            @Html.ValidationSummary(true)
    
            <div class="form-group">
                @Html.LabelFor(model => model.Header, new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    <input type="file" accept="image/*" name="name" value="" />
                </div>
            </div>    
            <div class="form-group">
                <label class="control-label col-md-2">验证码</label>
                <div class="col-md-10">
                    <input type="text" name="name" value=" " />  <img id="imgCode" style="cursor:pointer;" title="切换下一张" src="/UserInfo/VerifyCodeImage" alt="验证码" />
                </div>
            </div>
    
            <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Create" class="btn btn-default" />
                </div>
            </div>
        </div>
    }
    
    <div>
        @Html.ActionLink("Back to List", "Users")
    </div>

    controller

      [HttpPost]
            public ActionResult Register(UserInfo userInfo)
            {
                int saveCount = 0;
    
                if (ModelState.IsValid)
                {
                    var files = Request.Files;
                    if (files.Count > 0)
                    {
                        var file = files[0];
                        string strFileSavePath = Request.MapPath("~/Content/Images");
    
                        string strFileExtention = Path.GetExtension(file.FileName);
                        if (!Directory.Exists(strFileSavePath))//如果项目不存在
                        {
                            Directory.CreateDirectory(strFileSavePath);创建指定路径下的文件 如:path=C:win123.txt
                        }
    
                        file.SaveAs(strFileSavePath + "/" + userInfo.DisplayName + strFileExtention);
                        userInfo.Header = "/Content/Images/" + userInfo.DisplayName + strFileExtention;
                    }
                    _userInfoServiceRepository.Add(userInfo);
                    saveCount = _userInfoServiceRepository.SaveChanges();
                }
                if (saveCount > 0)
                {
                    return RedirectToAction("Users");
                }
                else
                {
                    return View(userInfo);
                }
            }

    结果

    总结

    使用原生的提交表单是最简单的方式,其实如果在做移动端的话在手机浏览器不支持flash或者html5,这中方式也是最合适的方式。

     
     
  • 相关阅读:
    PythonStudy——os 操作系统 模块
    PythonStudy——sys:系统 模块
    PythonStudy——datatime 模块
    PythonStudy——calendar 模块
    PythonStudy——time 模块
    PythonStudy——shelve 模块
    PythonStudy——hashlib 模块
    PythonStudy——hmac 模块
    JDK的版本历史
    Zookeeper分布式协调服务
  • 原文地址:https://www.cnblogs.com/hehehehehe/p/6179843.html
Copyright © 2011-2022 走看看