本文導讀:在MVC中實現文件上傳與傳統的WebForm上傳文件方法都差不多,在cshtml視圖頁面放一個file標簽,然后在actionname方法中處理用戶上傳的文件。下面簡單介紹MVC中上傳文件的方法。

一、MVC中如何上傳文件
1、在Web Forms中,當你把一個FileUpload控件拖到設計器中,你或許沒有注意到在生成的HTML中會在form標簽中加入一條額外屬性 enctype="multipart/form-data". 而FileUpload控件本身會生成為<input type=”file” />,在MVC的view里,下列HTML可以做到同樣效果
HTML 代碼 復制
<form action="/" method="post" enctype="multipart/form-data"> <input type="file" name="FileUpload1" /><br /> <input type="submit" name="Submit" id="Submit" value="Upload" /></form>
注意form標簽已經包括了enctype標簽,而method屬性則設為”post”,這樣設置并不多于因為默認的提交時通過HTTP get方式進行
2、在Asp.net MVC中Controller類中,Request對象作為HttpRequestBase類型的一個屬性存在。HttpReuqestBase其實是 HTTP請求的一個封裝,暴漏了很多屬性,包括Files collection(其實是HttpFileCollectionBase的集合),在集合中的每一個元素都是HttpPostedFileBase的 集合,擴展方法是用于確保上傳的文件是否存在。實際上,這和FileUpload.HasFile()方法的工作原理一致。
二、MVC上傳文件的實例:
1、視圖文件
前臺引擎采用Razor
上傳頁View:
C# 代碼 復制
@model System.Web.HttpContextBase@{ ViewBag.Title = "上傳文件";}<h3>上傳文件</h3><br /><br />@*new { enctype = "multipart/form-data" }比不可少,否則上傳文件不會成功 *@ @using (Html.BeginForm("Upload", "UploadFile", FormMethod.Post, new { enctype = "multipart/form-data" })){ <text>選擇上傳文件:</text><input name="file" type="file" id="file" /> <br /> <br /> <input type="submit" name="Upload" value="Upload" />}2、后臺UploadFileController
C# 代碼 復制
[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 HttpPostedFileBase file = Request.Files[0]; //保存成自己的文件全路徑,newfile就是你上傳后保存的文件, //服務器上的UpLoadFile文件夾必須有讀寫權限 file.SaveAs(Server.MapPath(@"UploadFile\\newfile")); } newFile = DateTime.Now.ToString("yyyyMMddHHmmss") + ".sl"; return View(); }另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁題目:MVC中如何上傳文件-創新互聯
文章分享:http://www.yijiale78.com/article8/dodgop.html
成都網站建設公司_創新互聯,為您提供網站策劃、ChatGPT、微信小程序、全網營銷推廣、網站設計公司、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯