溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MVC中如何上傳文件

發(fā)布時(shí)間:2020-07-12 22:18:32 來(lái)源:網(wǎng)絡(luò) 閱讀:489 作者:rmlifejun 欄目:編程語(yǔ)言

本文導(dǎo)讀:在MVC中實(shí)現(xiàn)文件上傳與傳統(tǒng)的WebForm上傳文件方法都差不多,在cshtml視圖頁(yè)面放一個(gè)file標(biāo)簽,然后在actionname方法中處理用戶上傳的文件。下面簡(jiǎn)單介紹MVC中上傳文件的方法。

一、MVC中如何上傳文件

 

1、在Web Forms中,當(dāng)你把一個(gè)FileUpload控件拖到設(shè)計(jì)器中,你或許沒有注意到在生成的HTML中會(huì)在form標(biāo)簽中加入一條額外屬性 enctype="multipart/form-data". 而FileUpload控件本身會(huì)生成為<input type=”file” />,在MVC的view里,下列HTML可以做到同樣效果

 

HTML 代碼   復(fù)制

<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標(biāo)簽已經(jīng)包括了enctype標(biāo)簽,而method屬性則設(shè)為”post”,這樣設(shè)置并不多于因?yàn)槟J(rèn)的提交時(shí)通過(guò)HTTP get方式進(jìn)行

 

2、在Asp.net MVC中Controller類中,Request對(duì)象作為HttpRequestBase類型的一個(gè)屬性存在。HttpReuqestBase其實(shí)是 HTTP請(qǐng)求的一個(gè)封裝,暴漏了很多屬性,包括Files collection(其實(shí)是HttpFileCollectionBase的集合),在集合中的每一個(gè)元素都是HttpPostedFileBase的 集合,擴(kuò)展方法是用于確保上傳的文件是否存在。實(shí)際上,這和FileUpload.HasFile()方法的工作原理一致。

 

二、MVC上傳文件的實(shí)例:

 

1、視圖文件

前臺(tái)引擎采用Razor

上傳頁(yè)View:

 

C# 代碼   復(fù)制

@model System.Web.HttpContextBase@{    ViewBag.Title = "上傳文件";}<h3>上傳文件</h3><br /><br />@*new { enctype = "multipart/form-data" }比不可少,否則上傳文件不會(huì)成功 *@ @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、后臺(tái)UploadFileController

 

C# 代碼   復(fù)制

      [HttpPost]      public ActionResult Upload(FormCollection form)      {            if (Request.Files.Count == 0)            {          //Request.Files.Count 文件數(shù)為0上傳不成功          Return View();          }            var file = Request.Files[0];            if (file.ContentLength == 0)            {               //文件大小大(以字節(jié)為單位)為0時(shí),做一些操作           Return View();          }          else          {           //文件大小不為0           HttpPostedFileBase file = Request.Files[0];          //保存成自己的文件全路徑,newfile就是你上傳后保存的文件,          //服務(wù)器上的UpLoadFile文件夾必須有讀寫權(quán)限                 file.SaveAs(Server.MapPath(@"UploadFile\\newfile"));          }          newFile = DateTime.Now.ToString("yyyyMMddHHmmss") + ".sl";                        return View();       }


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI