Asp.net-Mvc
Asp.net MVC:上傳多個圖像文件?
有沒有一個很好的例子來說明如何在 asp.net mvc 中上傳多個圖像文件?我知道我們可以使用 HttpPostedFileBase 上傳一個文件。有沒有辦法通過點擊一個按鈕上傳多個文件?
我之前在 webform 的 ajaxtoolbox 中使用了文件上傳,並且喜歡它的工作原理。MVC中有類似的方法嗎?或者,是否有現有的控制項可以很好地做到這一點?免費控制更好,但即使花費一些美元也可以。
謝謝
使用這個jQuery 外掛
只需包含外掛 js 文件,創建標籤:
<input type='file' multiple id='fileUpload' name="files[]" data-url="@Url.Action("Upload","Home")" />(除了 IE9 不允許在選擇對話框中選擇多個文件)
添加一些 JavaScript:
$(function () { $('#fileUpload').fileupload({ dataType: 'json', done: function (e, data) { $.each(data.result.files, function (index, file) { $('<p/>').text(file.name).appendTo(document.body); }); } }); });在控制器操作中,只需檢查 Request.Files 並做任何你想做的事情。這是一個很好的文件
[HttpPost] public JsonResult Upload() { foreach (var file in Request.Files) { if(file.ContentLength > 0) { file.SaveAs(Server.MapPath("~/Upload/" + file.FileName)); } } return Json(new { result = true }); }
您可以使用 http 動詞實現一個操作,
POST以接收HttpPostedFileBase並保存所有文件的集合,例如:[HttpPost] public ActionResult Upload(IEnumerable<HttpPostedFileBase> files) { foreach (var file in files) { file.SaveAs(Server.MapPath("~/Update/" + file.FileName)); } return View(); }或者,你可以閱讀
Request.Files並做同樣的工作,[HttpPost] public ActionResult Upload() { foreach (var file in Request.Files) { file.SaveAs(Server.MapPath("~/Update/" + file.FileName)); } return View(); }也可以看看