单个文件,多个文件区别不大,只是需要把多个文件装在一个容器里面,循环遍历即可;
需要注意的 input 标签中name属性,一定要指定; 在这是fileBase
需要确定method必须是post ; enctype必须指定为multipart/form-data
单文件
HTML ----Using
@using (Html.BeginForm("Load", "UPLoad", FormMethod.Post, new { enctype = "multipart/form-data" })){<p><input type="file" name="fileBase" value="fileBase"/><input type="submit" name="name" value="提交" /></p>}
HTML ----form
<form action="/UPLoad/Load" method="post" enctype="multipart/form-data"><p><input type="file" name="fileBase" value="fileBase" /><input type="submit" name="name" value="提交" /></p></form>
这两种表单,看个人需要自行选用,
控制器
public ActionResult Load(HttpPostedFileBase fileBase){//判断是否获取文件if (fileBase != null){var s = fileBase.FileName;//存储文件夹路径var sks = "/NewFold/";//判断是否存在路径if (!Directory.Exists(Server.MapPath(sks)))//不存在 建一个Directory.CreateDirectory(Server.MapPath(sks));fileBase.SaveAs(Server.MapPath(sks + s));}return View();}
多文件
HTML---using
只是在input 标签中加multiple属性 就是下面这样:form 标签中也是这样
@using (Html.BeginForm("Load", "UPLoad", FormMethod.Post, new { enctype = "multipart/form-data" })){<p><input type="file" name="fileBase" value="fileBase"multiple/><input type="submit" name="name" value="提交" /></p>}
控制器
public ActionResult Load(IEnumerable<HttpPostedFileBase> fileBase){if (fileBase != null){foreach (var item in fileBase){var s = item.FileName;var sks = "/NewFold/";if (!Directory.Exists(Server.MapPath(sks)))Directory.CreateDirectory(Server.MapPath(sks));item.SaveAs(Server.MapPath(sks + s));}}return View();}
可以试试!