您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關使用ASP.NET MVC怎么批量上傳文件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
一、單文件上傳
單文件上傳的原理是將文件數據放入request中,由頁面直接傳遞至后臺controller中,類似于view和controller之間傳參數,直接貼上代碼加注釋。
Upload.aspx文件中的代碼:
<form enctype="multipart/form-data" method="post"> <input type="file" id="file" /> <input type="submit" value="上傳" /> </form>
Controller中代碼:
[HttpPost] public ActionResult Upload(FormCollection form) { if (Request.Files.Count == 0){ //Request.Files.Count 文件數為0上傳不成功 return View(); } var file = Request.Files[0]; if (file.ContentLength == 0){ //文件大小大(以字節為單位)為0時,做一些操作 return View(); } else{ //文件大小不為0 file = Request.Files[0]; //服務器上的UpLoadFile文件夾必須有讀寫權限 string target = Server.MapPath("/")+("/Mock/Learning/");//取得目標文件夾的路徑 string filename = file.FileName;//取得文件名字 string path = target + filename;//獲取存儲的目標地址 file.SaveAs(path);} return View(); }
這里需要注意的是,在ASP.NET中,request的默認大小為4M,因此,如需上傳較大文件,需要更改Web.config。
<system.web> <httpRuntime maxRequestLength="40960"/> </system.web>
二、批量文件上傳
思路是通過js根據用戶需求動態添加上傳控件,多個文件通過request一并上傳至controller。
Upload.aspx文件中的代碼:
<form enctype="multipart/form-data" method="post"> <div id="FileList"> <div> <input type="file" id="file" name="file0"/> </div> </div> <p> <a onclick="AddFile();">添加文件</a> </p> <p> <input type="submit" value="上傳" /> </p> </form> <script> var index = 1; function AddFile() { var ul = document.getElementById("FileList"); var inputDiv = document.createElement("div"); inputDiv.setAttribute("Id", "div" + index); var file = document.createElement("input"); file.setAttribute("type", "file"); file.setAttribute("id", "file" + index); file.setAttribute("name", "file" + index); var btnDel = document.createElement("input"); btnDel.setAttribute("type", "button"); btnDel.setAttribute("value", "刪除"); btnDel.setAttribute("Id", index); btnDel.onclick = function() { inputDiv.removeChild(file); inputDiv.removeChild(btnDel); ul.removeChild(inputDiv); } inputDiv.appendChild(file); inputDiv.appendChild(btnDel); ul.appendChild(inputDiv); index++; } </script>
Controller中的代碼:
[HttpPost] public ActionResult Upload(FormCollection form) { foreach (string item in Request.Files) { HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase; if (file==null || file.ContentLength == 0) continue; //判斷Upload文件夾是否存在,不存在就創建 string path = Server.MapPath("..//Upload"); if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } path = AppDomain.CurrentDomain.BaseDirectory + "Upload/"; //獲取上傳的文件名 string fileName = file.FileName; //上傳 file.SaveAs(Path.Combine(path,fileName)); } return Content("<script>alert('上傳文件成功');window.history.back();</script>"); }
ASP.NET 是開源,跨平臺,高性能,輕量級的 Web 應用構建框架,常用于通過 HTML、CSS、JavaScript 以及服務器腳本來構建網頁和網站。
上述就是小編為大家分享的使用ASP.NET MVC怎么批量上傳文件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。