<% using (Html.BeginForm("Upload", "File", FormMethod.Post,
new { enctype = "multipart/form-data" })) { %>
<p><input type="file" id="fileUpload" name="fileUpload" size="23" /></p>
<p><input type="submit" value="Upload file" /></p>
<% } %>
關鍵點:enctype="multipart/form-data" 必須指定,否則檔案內容不會隨表單送出。
public ActionResult Upload()
{
foreach (string inputTagName in Request.Files)
{
HttpPostedFileBase file = Request.Files[inputTagName];
if (file.ContentLength > 0)
{
string filePath = Path.Combine(
Server.MapPath("~/Uploads"),
Path.GetFileName(file.FileName)
);
file.SaveAs(filePath);
}
}
return RedirectToAction("Index", "File");
}
Web.config appSettings。FormData + AJAX 實現無刷新上傳與進度條。前端將 input 加上 multiple 屬性,後端迴圈處理 Request.Files 即可支援多檔同時上傳。