Showing posts with label FileUpload. Show all posts
Showing posts with label FileUpload. Show all posts

Wednesday, 16 December 2015

ASP.Net - File Uploading

In this post, I will explain how to upload the file on a web server using ASP.Net FileUpload control.

The FileUpload control allows the user to browse for and select the file to be uploaded, providing a browse button and a text box for the filename. Once, the user has selected the filename by browsing, the SaveAs method of the FileUpload control can be called to save the file to the disk.

The basic syntax of FileUpload is: 
<asp:FileUpload ID= "Uploader" runat = "server" />

The FileUpload class is derived from the WebControl class and inherits all its members. Apart from those, the FileUpload class has the following read-only properties:
  
Properties
Description
FileBytes
Returns an array of the bytes in a file to be uploaded.
FileContent
Returns the stream object pointing to the file to be uploaded.
FileName
Returns the name of the file to be uploaded.
HasFile
Specifies whether the control has a file to upload.
PostedFile
Returns a reference to the uploaded file.

The posted file is encapsulated in an object of type HttpPostedFile, which could be accessed through the PostedFile property of the FileUpload class.
The HttpPostedFile class has the following frequently used properties:

Properties
Description
ContentLength
Returns the size of the uploaded file in bytes.
ContentType
Returns the MIME type of the uploaded file.
FileName
Returns the full filename.
InputStream
Returns a stream object pointing to the uploaded file.

Following example demonstrates the FileUpload control and its properties. The form has a FileUpload control along with a save button and a label control for displaying the file name, file type, and file length.
In the design view, the form looks as follows:



The content file code is as given:
<body>
   <form id="form1" runat="server">
      <div>
         <h3> File Upload:</h3>
         <br />
         <asp:FileUpload ID="FileUpload1" runat="server" />
         <br /><br />
         <asp:Button ID="btnsave" runat="server" onclick="btnsave_Click"  Text="Save" style="width:85px" />
         <br /><br />
         <asp:Label ID="lblmessage" runat="server" />
      </div>
   </form>

</body>

The code behind the save button is as given:
protected void btnsave_Click(object sender, EventArgs e)
{
   StringBuilder sb = new StringBuilder();
   if (FileUpload1.HasFile)
   {
      try
      {
         sb.AppendFormat(" Uploading file: {0}", FileUpload1.FileName);
         //saving the file
        SaveAs("<c:\\Directory>" + FileUpload1.FileName);
         //Showing the file information
         sb.AppendFormat("<br/> Save As: {0}",  FileUpload1.PostedFile.FileName);
         sb.AppendFormat("<br/> File type: {0}",    FileUpload1.PostedFile.ContentType);
         sb.AppendFormat("<br/> File length: {0}",  FileUpload1.PostedFile.ContentLength);
         sb.AppendFormat("<br/> File name: {0}",  FileUpload1.PostedFile.FileName);
      }catch (Exception ex)
      {
         sb.Append("<br/> Error <br/>");
         sb.AppendFormat("Unable to save file <br/> {0}", ex.Message);
      }
   }
   else
   {
      lblmessage.Text = sb.ToString();
   }
}