MVC3 上传文件

来源:互联网 发布:2017pta编程题答案 编辑:程序博客网 时间:2024/04/26 08:42
@model System.Web.HttpContextBase@{    ViewBag.Title = "上传文件";}<h2>上传文件</h2><br /><br />@*new { enctype = "multipart/form-data" }比不可少,否则上传文件不会成功 *@ @using (Html.BeginForm("Upload", "UploadFile", FormMethod.Post, new { enctype = "multipart/form-data" })){    <text>选择上传文件:</text><input name="file" type="file" id="file" />    <br />    <br />    <input type="submit" name="Upload" value="Upload" />}
[HttpPost]        public ActionResult Upload(FormCollection form)        {            if (Request.Files.Count == 0)            {      //Request.Files.Count 文件数为0上传不成功      Return View();      }            var file = Request.Files[0];            if (file.ContentLength == 0)            {                //文件大小大(以字节为单位)为0时,做一些操作      Return View();     }     else    {      //文件大小不为0      HttpPostedFileBase file = Request.Files[0];      //保存成自己的文件全路径,newfile就是你上传后保存的文件,      //服务器上的UpLoadFile文件夹必须有读写权限            file.SaveAs(Server.MapPath(@"UploadFile\newfile"));    }                      newFile = DateTime.Now.ToString("yyyyMMddHHmmss") + ".sl";                        return View();        }

entType属性说明,摘自http://www.w3school.com.cn/tags/att_form_enctype.asp

在使用时,type=file控件一定要加name属性,否则报错,后台获不到

定义和用法

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。

属性值

值描述application/x-www-form-urlencoded在发送前编码所有字符(默认)multipart/form-data

不对字符编码。

在使用包含文件上传控件的表单时,必须使用该值。

text/plain空格转换为 "+" 加号,但不对特殊字符编码。
0 0
原创粉丝点击