برای این View که از ویژگی multiple مربوط به HTML5 استفاده میکند و با نام کنترل files
و یا این View که سه کنترل هم نام (با نام files) ارسال فایل را تعریف کردهاست:
هر دو یک اکشن متد سمت سرور را خواهند داشت (اگر نام کنترلهای سمت کلاینت یکسان باشند، در سمت سرور، یک آرایه را تشکیل میدهند):
@using (Html.BeginForm("Multiple", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" name="files" multiple /> <button class="btn btn-default">Upload</button> }
@using (Html.BeginForm("Multiple", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" name="files" /><br /> <input type="file" name="files" /><br /> <input type="file" name="files" /><br /> <button class="btn btn-default">Upload</button> }
[HttpPost] public ActionResult Multiple(IEnumerable<HttpPostedFileBase> files) { foreach (var file in files) { if (file != null && file.ContentLength > 0) { file.SaveAs(Path.Combine(Server.MapPath("/uploads"), Guid.NewGuid() + Path.GetExtension(file.FileName))); } } return View(); }