How to Make File upload using Ajax control in asp.net

Javascript file
  1. <script type="text/javascript" language="javascript">
  2. function uploadError(sender,args){
  3. document.getElementById('lblStatus').innerText = args.get_fileName(),
  4. "<span style='color:red;'>" + args.get_errorMessage() + "</span>";
  5. addToClientTable(args.get_fileName(), "<span style='color:red;'>" + args.get_errorMessage() + "</span>");
  6. }
  7. function StartUpload(sender,args){
  8. document.getElementById('lblStatus').innerText = 'Uploading Started.';
  9. }
  10. function UploadComplete(sender,args){
  11. var filename = args.get_fileName();
  12. var contentType = args.get_contentType();
  13. var text = "Size of " + filename + " is " + args.get_length() + " bytes";
  14. if (contentType.length > 0)
  15. {
  16. text += " and content type is '" + contentType + "'.";
  17. }
  18. document.getElementById('lblfilename').innerText = filename;
  19. document.getElementById('lblStatus').innerText = text;
  20. addToClientTable(args.get_fileName(), text);
  21. }
  22. function fillCell(row, cellNumber, text) {
  23. var cell = row.insertCell(cellNumber);
  24. cell.innerHTML = text;
  25. cellcell.style.borderBottom = cell.style.borderRight = "solid 1px #aaaaff";
  26. }
  27. function addToClientTable(name, text) {
  28. var table = document.getElementById("<%= clientSide.ClientID %>");
  29. var row = table.insertRow(0);
  30. fillCell(row, 0, name);
  31. fillCell(row, 1, text);
  32. }
  33. </script>

Design page
  1. <asp:ScriptManager ID="scman" runat="server"></asp:ScriptManager>
  2. <asp:UpdatePanel ID="update1" runat="server">
  3. <ContentTemplate>
  4. <AjaxToolkit:AsyncFileUpload ID="AsyncFileUpload1" Width="400px" runat="server" OnClientUploadError="uploadError"
  5. OnClientUploadStarted="StartUpload" OnClientUploadComplete="UploadComplete" CompleteBackColor="Lime"
  6. UploaderStyle="Modern" ErrorBackColor="Red" ThrobberID="Throbber" OnUploadedComplete="AsyncFileUpload1_UploadedComplete"
  7. UploadingBackColor="#66CCFF" />
  8. <br />
  9. <asp:Label ID="Throbber" runat="server" Style="display: none" Font-Bold="true">
  10. <img src="images/indicator-new.gif" align="absmiddle" alt="loading" />
  11. </asp:Label>
  12. <asp:Label ID="lblfilename" runat="server" Style="font-family: Arial; color:Green; font-size: small;"></asp:Label>
  13. <br />
  14. <asp:Label ID="lblStatus" runat="server" Style="font-family: Arial; font-size: small;"></asp:Label>
  15. <table style="border-collapse: collapse; border-left: solid 1px #aaaaff; border-top: solid 1px #aaaaff;" runat="server" cellpadding="3" id="clientSide" />
  16. </ContentTemplate>
  17. <Triggers>
  18. <asp:AsyncPostBackTrigger ControlID="AsyncFileUpload1" EventName="UploadedComplete" />
  19. </Triggers>
  20. </asp:UpdatePanel>

And Code behind page for file upload
  1. protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
  2. {
  3. System.Threading.Thread.Sleep(1000);
  4. if (AsyncFileUpload1.HasFile)
  5. {
  6. string strPath = MapPath("~/Uploads/") + System.IO.Path.GetFileName(e.filename);
  7. AsyncFileUpload1.SaveAs(strPath);
  8. }
  9. }