How to do File Uploading in ASP.NET MVC 3.0

I want to upload file in asp.net-mvc. How can I upload the file using html input file control?

Last updated:11/22/2014 1:23:00 AM

1 Answers

Manoj Bhatt
Manoj Bhatt

So you would start by creating an HTML form which would contain a file input:

@using (Html.BeginForm("Index", "Home", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
    <input type="file"name="file" />
    <input type="submit"value="OK" />
}
and then you would have a controller to handle the upload:
public class HomeController : Controller
{
    // This action renders the form
    public ActionResult Index()
    {
        return View();
    }
 
    // This action handles the form POST and the upload
    [HttpPost]
    public ActionResult Index(HttpPostedFileBase file)
    {
        // Verify that the user selected a file
        if (file != null && file.ContentLength > 0)
        {
            // extract only the fielname
            var fileName = Path.GetFileName(file.FileName);
            // store the file inside ~/App_Data/uploads folder
            var path =Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            file.SaveAs(path);
        }
        // redirect back to the index action to show the form once again
        return RedirectToAction("Index");       
    }
}

Answer