ASP.net MVC的上传文件功能并没有其他模块(action,Controller)那么智能、好用,不过也不是很复杂。
打开vs2008 新建一个MVC工程

如果web项目没有asp.net mvc web application的话,请下载 .net MVC
确定后显示Unit Test选项 根据需要选择,这里就选择NO。

首先建立我们上传文件的form,打开

用HTML helper编写一个form,当然也可以用纯HTML
<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<h2>File Upload Example</h2>
<p>
File 1:<input type="file" name="file1" id="file1" /><br />
<input type="submit" id="upload" value="Upload" />
</p>
</asp:Content>
?
然后编写相应的action,打开

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Text;
using System.IO;
namespace FileUpload.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
//ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult Upload()
{
StringBuilder info = new StringBuilder();
foreach (string file in Request.Files)
{
HttpPostedFileBase postFile = Request.Files[file];//get post file
if (postFile.ContentLength == 0)
continue;
string newFilePath = @"D:/";//save path
postFile.SaveAs(newFilePath + Path.GetFileName(postFile.FileName));//save file
info.AppendFormat("Upload File:{0}/r/n", postFile.FileName);//info
}
ViewData["Info"] = info;
return View("Index");
}
public ActionResult About()
{
return View();
}
}
}
?