XHTMLVisual Studio 2008Visual Studio 2005CSS.NET 3.5AjaxMVCHTML中级开发Visual StudioJavascript.NETASP.NETC#
使用 ASP.NET MVC 实现 HTTP 文件上传






4.46/5 (20投票s)
在本文中,我将探讨如何使用 ASP.NET MVC 上传文件。由于 MVC 框架不使用服务器控件,因此了解 MVC 中的文件上传方式将会很有趣。
引言
在本文中,我将探讨如何使用 ASP.NET MVC 上传文件。由于 MVC 框架不使用服务器控件,因此了解 MVC 中的文件上传方式将会很有趣。
使用代码
这是渲染文件上传表单的视图
<%@ Page Title="" Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
FileUpload
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>FileUpload</h2>
<% using (Html.BeginForm("FileUpload", "FileUpload",
FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
<input name="uploadFile" type="file" />
<input type="submit" value="Upload File" />
<%} %>
</asp:Content>
现在,我将编写一个文件上传控制器,这是我的 FileUploadController.cs
[HandleError]
public class FileUploadController : Controller
{
public ActionResult FileUpload()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult FileUpload(HttpPostedFileBase uploadFile)
{
if (uploadFile.ContentLength > 0)
{
string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
Path.GetFileName(uploadFile.FileName));
uploadFile.SaveAs(filePath);
}
return View();
}
}
需要注意的是,控制器有两个重载的 FileUpload
方法。第一个 ActionResult FileUpload()
只是为了渲染表单,而带有 [AcceptVerbs(HttpVerbs.Post)]
特性的方法将上传文件。这是用于上传文件的输出表单
摘要
MVC 框架不使用服务器控件,因此我们使用 ASP.NET MVC 构建了一个 HTTP 文件上传方法。