For those who want to upload files using ASP.NET MVC will find that the process and objects you used in ASP.NET WebForms has changed slightly for ASP.NET MVC.
MVC uses a HttpPostedFileBase object rather than the HttpPostedFile object that you may be used to.
This is the code I used recently to enable file uploading in my MVC app.
In the View:
<form action="/home/Import" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Submit" />
</form>
and in the Controller:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Import(FormCollection form)
{
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength != 0)
{
StreamReader sr = new StreamReader(hpf.InputStream);
//Do Something with Stream
}
else
{
return View("ImportFailed");
}
}
return View("ImportSucceeded");
}
