ASP.NET MVC上传图片前后台内容

2022-11-28 16:00:03 浏览数 (3)

//样式采用bootstrap样式 

//前端form表单代码

//着重声明:form表单必须是post方式,

//表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。

//默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.

代码语言:javascript复制
<h2>添加图片:</h2>
<form action="/Home/SaveInfo" method="post" enctype="multipart/form-data">
    <p>
        <label for="file">选择图片:</label>
        <input type="file" name="files" class="form-control" id="file"/>
    </p>
    <p>
        <input type="submit" value="保存" class="btn btn-info" />
    </p>
</form>

//后台asp.net MVC函数代码 

代码语言:javascript复制
        /// <summary>
        /// 添加图片
        /// </summary>
        /// <param name="files"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult SaveInfo(HttpPostedFileBase files)
        {
            if (files==null) {//判断是否空提交
                Response.Write("<script>alert('请提交jpg/png图片');");
                return RedirectToAction("Index");
            }
            string fileName = files.FileName;//文件名
            //获取文件名的后缀,并转为小写
            string extension = Path.GetExtension(fileName).ToLower();
            if (extension.Equals("jpg")|| extension.Equals("png")) {
                Response.Write("<script>alert('请提交jpg/png图片');");
                return RedirectToAction("Index");
            }
            string name = System.Guid.NewGuid().ToString("N");//32位随机数字作为新文件名
            string serverPath = Server.MapPath("/images/");//服务器图片存储位置
            string saveUrl = serverPath   name   extension;//文件存储路径 新文件名 后缀
            files.SaveAs(saveUrl);//保存图片
            return RedirectToAction("Index");
        }

1 人点赞