In this article I am going to explain how to upload 
file with the help of "Handler" in ASP. net c#, My main focus to write this 
article is that, if you work with file upload control,  the page requires 
full post back , and if your file upload control is inside update panel,  
the you must specifies you button submit in trigger like,
 
and this also cause the full post back problem, for removing this problem use "Handler" in ASP. net c#
UploadFile.ashx Code
 
 
Default.aspx code
 
 
Default.aspx code.cs code
 
 
| 
  <Triggers> 
             
  <asp:PostBackTrigger
  ControlID=""/> 
  </Triggers> | 
and this also cause the full post back problem, for removing this problem use "Handler" in ASP. net c#
UploadFile.ashx Code
| 
  
  <%@
  WebHandler 
  Language="C#"
  Class="UploadFile"
  %> 
  using 
  System; 
  using 
  System.Web; 
  using 
  System.IO; 
  using 
  System.Web.SessionState; 
  public
  class 
  UploadFile : IHttpHandler,
  IRequiresSessionState 
  { 
      public
  void ProcessRequest(HttpContext 
  context) 
      { 
          
  string filedata = string.Empty; 
          if 
  (context.Request.Files.Count > 0) 
          { 
             
  HttpFileCollection files = 
  context.Request.Files; 
              
  for (int i = 0; i < files.Count; 
  i++) 
              { 
                 
  HttpPostedFile file = files[i]; 
                 
  if (Path.GetExtension(file.FileName).ToLower() 
  != ".jpg" 
                     &&
  Path.GetExtension(file.FileName).ToLower() 
  != ".png" 
                     &&
  Path.GetExtension(file.FileName).ToLower() 
  != ".gif" 
                     &&
  Path.GetExtension(file.FileName).ToLower() 
  != ".jpeg" 
                      &&
  Path.GetExtension(file.FileName).ToLower() 
  != ".pdf" 
                     ) 
                  { 
                      
  context.Response.ContentType = "text/plain"; 
                      
  context.Response.Write("Only jpg, png , gif, 
  .jpeg, .pdf are allowed.!"); 
                     
  return; 
                  } 
                 
  decimal size =
  Math.Round(((decimal)file.ContentLength 
  / (decimal)1024), 2); 
                 
  if (size > 2048) 
                  { 
                      
  context.Response.ContentType = "text/plain"; 
                      
  context.Response.Write("File size should not 
  exceed 2 MB.!"); 
                     
  return; 
                   } 
                 
  string fname; 
                 
  if (HttpContext.Current.Request.Browser.Browser.ToUpper() 
  == "IE" ||
  HttpContext.Current.Request.Browser.Browser.ToUpper() ==
  "INTERNETEXPLORER") 
                  { 
                     
  string[] testfiles = 
  file.FileName.Split(new
  char[] { '\\' }); 
                      fname = 
  testfiles[testfiles.Length - 1]; 
                  } 
                 
  else 
                  { 
                      fname = 
  file.FileName; 
                  } 
                 
  //here UploadFile is define my folder name , 
  where files will be store. 
                 
  string uploaddir = System.Configuration.ConfigurationManager.AppSettings["UploadFile"]; 
                  filedata =
  Guid.NewGuid()+ fname; 
                  fname =
  Path.Combine(context.Server.MapPath("~/" 
  + uploaddir + "/"), filedata); 
                  file.SaveAs(fname); 
              } 
          } 
          context.Response.ContentType 
  = "text/plain"; 
          context.Response.Write("File 
  Uploaded Successfully:" + filedata + 
  "!"); 
         
  //if you want to use file path in aspx.cs page , then assign it in to 
  session 
          context.Session["PathImage"] 
  = filedata; 
      } 
      public
  bool IsReusable 
      { 
          get 
          { 
              
  return false; 
          } 
      } 
  } | 
web.config code
| 
  <?xml
  
  version="1.0"?> 
  <!-- 
    For more information 
  on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
   
  
  --> 
  <configuration> 
    <system.web> 
      <compilation
  
  debug="true"
  targetFramework="4.0"/> 
    </system.web> 
    <appSettings> 
      <add
  
  key="Upload"
  value="UploadFile"/> 
    </appSettings> 
  </configuration> | 
Default.aspx code
| 
  
  <%@
  Page Language="C#"
  AutoEventWireup="true"
  CodeFile="Default.aspx.cs"
  Inherits="_Default"
  %> 
  <!DOCTYPE
  html PUBLIC
  "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  <html
  xmlns="http://www.w3.org/1999/xhtml"> 
  <head
  runat="server"> 
      <title></title> 
     
  <%-- Should have internet 
  connection for loading this file other wise inherit own js file for 
  supporting js library--%> 
      <script
  src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
      <script
  type="text/javascript"> 
          
  function onupload() { 
              $(function 
  () { 
                 
  var fileUpload = $('#<%=FileUpload.ClientID%>').get(0); 
                 
  var files = fileUpload.files; 
                 
  var test = new 
  FormData(); 
                 
  for (var 
  i = 0; i < files.length; i++) { 
                      
  test.append(files[i].name, files[i]); 
                  } 
                  $.ajax({ 
                      url:
  "UploadFile.ashx", 
                      type:
  "POST", 
                      contentType:
  false, 
                      processData:
  false, 
                      data: test, 
                      success:
  function (result) { 
                         
  if (result.split(':')[0] =
  "File Uploaded Successfully") { 
                              
  document.getElementById("<%=lbl_smsg.ClientID%>").innerText 
  = result.split(':')[0]; 
                          } 
                         
  else { 
                              
  document.getElementById("<%=lbl_emsg.ClientID%>").innerText 
  = result; 
                          } 
                      }, 
                      error:
  function (err) { 
                          
  alert(err.statusText); 
                      } 
                  }); 
              }) 
          } 
  </script> 
  </head> 
  <body> 
      <form
  id="form1"
  runat="server"> 
      <asp:ScriptManager
  ID="scmain"
  runat="server"
  ></asp:ScriptManager> 
     <asp:UpdatePanel
  ID="upmain"
  runat="server"> 
     <ContentTemplate> 
     <fieldset> 
     <legend>Upload 
  File WithOut PostBack inside Update Panel</legend> 
      <asp:FileUpload
  ID="FileUpload"
  runat="server"
  /> 
      <input
  type="button"
  id="btnUpload"
  value="Upload 
  Files" onclick="onupload();"/> 
   
      <asp:Label
  ID="lbl_emsg"
  runat="server"
  ForeColor="Red"></asp:Label> 
      <asp:Label
  ID="lbl_smsg"
  runat="server"
  ForeColor="Green"></asp:Label> 
       </fieldset>
   
     </ContentTemplate> 
     </asp:UpdatePanel> 
      </form> 
  </body> 
  </html> | 
Default.aspx code.cs code
| 
  using 
  System; 
  using 
  System.Collections.Generic; 
  using 
  System.Linq; 
  using 
  System.Web; 
  using 
  System.Web.UI; 
  using 
  System.Web.UI.WebControls; 
  public
  partial class
  _Default : System.Web.UI.Page 
  { 
      
  protected void Page_Load(object 
  sender, EventArgs e) 
      { 
      } 
  } | 
After uploading image


