單個文件,多個文件區別不大,只是需要把多個文件裝在一個容器里面,循環遍歷即可;
需要注意的 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();
}
可以試試!
