SIGN UP MEMBER LOGIN:    
ARTICLE

Upload Files to Server in ASP.NET MVC

Posted by Kumar Saurabh Articles | ASP.NET MVC with C# October 21, 2011
In this article I will be demonstrating about the Upload functionality in ASP.NET MVC .
Reader Level:
Download Files:
 

In this article I will be demonstrating about the Upload functionality in ASP.NET MVC .

In MVC we don't use the FileUpload Server control as we did with Web Forms – So Let's explore in this article that How do we Upload Files to Server in ASP.Net MVC.

For demonstration here, I will be using Visual Studio 2010(MVC2.0)

  1. Create a new ASP.NET MVC2 Web application - name it as -say- UploadMVC
     
  2. For this sample application - Let's not create the unit test project.- So select the radio button - No, Do not create a unit Test Project.
     
  3. Now we have the readymade/default ASP.Net MVC2 Project template with few files already existing in each of the folders Model , View and Controller.
     
  4. Lets provide the Upload functionality in the existing Home Page (Views->Home->Index.aspx) – from where we can upload Files from client machine to Server.
     
  5. Go to Views->Home->Index.aspx

    Add below Lines of Code

    <div >
        <h2>Upload Files in MVC</h2>
       <% using (Html.BeginForm("FileUpload","Home",
                        FormMethod.Post,new { enctype = "multipart/form-data" }))
            {%>
            <input name="uploadFile" type="file" />
            <input type="submit" value="Upload File"/>

            <span style="color:red;font-weight:bold">
            <%=TempData["UploadValidationMessage_Failure"]%>
            </span>

             <span style="color:Green;font-weight:bold">
             <%=TempData["UploadValidationMessage_Success"]%>
            </span>
    <%} %>
        </div>

    FileUpload – Action (in which Upload logic/Code is present) name which we will need to code in our Controller(HomeController.cs)

    Home-Controller Name
    enctype = "multipart/form-data" -make sure encoding type is multipart/form-data - This is required to support file uploads.

     

  6. Go to Controllers->HomeController.cs file

    a) Add using statement

    using System.IO;

    b) Include Action → FileUpload


    AcceptVerbs(HttpVerbs.Post)]
            public ActionResult FileUpload(HttpPostedFileBase uploadFile)
            {
                if (uploadFile != null)
                {

                    if (uploadFile.ContentLength > 0)
                    {
                        string strSuffixFileName = "_" + DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss").Replace("_","");
                        string FilePath = HttpContext.Server.MapPath("../Uploads") + "\\ " + strSuffixFileName +"_" + Path.GetFileName(uploadFile.FileName);
                        uploadFile.SaveAs(FilePath);
                        TempData
    ["UploadValidationMessage_Success"] = "Data Upload Succeeded" + FilePath;
     
                        return View("Index");

                    }

                    return View("Index");
                }
     
                else
                {
                    TempData["UploadValidationMessage_Failure"] = "Please provide the filename to be uploaded";
                    return View("Index");
                }
     
            }

    UploadFile is of type HttpPostedFileBase which Serves as the base class for classes that provide access to individual files that have been uploaded by a client.

    ContentLength-gets the size of an uploaded file, in bytes.

    uploadFile.SaveAs-saves the contents of an uploaded file.

    Filename gets prefixed with the current date and time before getting saved in the folder – Uploads.

    Uploads- is the folder we need to create in Server – For testing purpose I have created it inside the Project folder in my client machine. - It can be seen if you download the Source Code .

    Filename gets prefixed with the current date and time before getting saved in the folder – Uploads.

    I have added 2 validations in the above Action Code-

    a) Say if user tries to Upload an empty file – he would get corresponding Validation message.
    b) Say if user doesn't selects a file and tries to upload - he would get corresponding Validation message.


    7. Run the application.
    a)

    MVC1.gif

    b) Click Browse-> Select the file to be uploaded and click Upload File – Once File is successfully uploaded in the folder Uploads – We would get the Success message as in below screen-shot.

    MVC2.gif

If our upload fails as per the 2 criteria mentioned as validations in Action Code – Corresponding message would be printed in the Index View.

Hope this article would be helpful for understanding Uploading files to Server in ASP.NET MVC.
I have attached the source code for this project.

Happy Learning!
 

Login to add your contents and source code to this article
share this article :
post comment
 
Nevron Gauge for SharePoint
Become a Sponsor
PREMIUM SPONSORS
  • The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
    Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
Nevron Gauge for SharePoint
Become a Sponsor