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 ( ) ;
}
}
}
保存后直接运行
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 ( ) ;
}
}
}
保存后直接运行
这样就可以测试了。