天天看點

MVC上傳檔案

ASP.NET MVC上傳檔案是必段撐握的知識。加強訓練才是。

以前Insus.NET曾使用第三方MyAjaxForm.js 

或者是jQuery的Uploadify元件:javascript:void(0) 

還有一篇可以參考的,VS标準标簽input 的type="file"

今天還是參考上面最後篇,實作上傳單一或是多個檔案,不過文法有所改變:

建立一個控制,一個視圖操作,一個操作是處理上傳檔案方法:

MVC上傳檔案
代碼:
MVC上傳檔案
MVC上傳檔案

public ActionResult UploadFile()
        {            
            return View();
        }

        [HttpPost]
        public ActionResult ProcessUploadFiles(IEnumerable<HttpPostedFileBase> filename)
        {
            foreach (var file in filename)
            {
                if (file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    var path = Path.Combine(Server.MapPath("~/Temp"), fileName);
                    file.SaveAs(path);
                }
            }
            return RedirectToAction("UploadFile");
        }      

View Code

再來看看視圖的實作:

MVC上傳檔案

上面的filename名字需要比對。如果不一樣,在運作時會呈現異常,參考下面動畫示範:

MVC上傳檔案

如果需要同時上傳多個檔案,我們隻管拉多幾個:

MVC上傳檔案
MVC上傳檔案
<input type="file" name="filename" id="file1" />      

如同時上傳3個:

MVC上傳檔案