Click here to Skip to main content
15,886,362 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi all,
I am using two AsyncFileUpload in a page ...
It works fine if I browse the correct formats which is specified in the OnClientUploadStarted event. But if I browse the wrong formats, it shows alert as I mentioned in the method then it throws error like
"Server Response Error:'Unknown Server Error'.
Here is my javascript code
JavaScript
function uploadError(sender, args) {
        try {
            checkExtension(sender, args);
            alert('Error: File not uploaded');
        }
        catch (e) {
          //  alert(e.message);
        }
    }



    function checkExtension(sender, args) {


        try{
            var filename = args.get_fileName().toLowerCase();
            var ext = filename.substring(filename.lastIndexOf(".") + 1);
            if (ext != 'jpg' && ext != 'png' && ext != 'jpeg' && ext != 'gif') {

                alert('Invalid File Type (Only .png, .gif and .jpg)');

                return false;
            }
            else
                return true;
        }
        catch (e) {
        }
    }



    function uploadComplete(sender, args) {
        try {
            alert('File uploaded successfully');
        }
        catch (e) {
         //   alert(e.message);
        }
    }

ASP.NET
<cc1:AsyncFileUpload
           ID="AsyncFileUpload1"
            runat="server"
           OnUploadedComplete="AsyncFileUpload1_UploadComplete"
           OnClientUploadComplete="uploadComplete"
           OnClientUploadError="uploadError"
            önClientUploadStarted="checkExtension"
           CompleteBackColor="SkyBlue"
           UploaderStyle="Traditional"
           BackColor="IndianRed"
           ErrorBackColor="Salmon" />

       <cc1:AsyncFileUpload
           ID="AsyncFileUpload2"
            runat="server"
           OnUploadedComplete="AsyncFileUpload2_UploadComplete"
           OnClientUploadComplete="uploadComplete"
           OnClientUploadError="uploadError"
            önClientUploadStarted="checkExtension"
           CompleteBackColor="SkyBlue"
           UploaderStyle="Traditional"
           BackColor="IndianRed"
           ErrorBackColor="Salmon" />

where cc1 represents
HTML
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>



If I use only one Asnfileupload control, it works fine. But using multiple controls and browsing to wrong file formats throws the Error "Server Response Error:'Unknown Server Error'.


Any help would be highly appreciated
Posted

1 solution

I am using:
HTML
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

Replace your entire script with following:
JavaScript
<script language="javascript" type="text/javascript">
        function uploadError(sender, args) {
            alert('Error: File not uploaded');
        }

        function checkExtension(sender, args) {
            var filename = args.get_fileName().toLowerCase();
            var ext = filename.substring(filename.lastIndexOf(".") + 1);
            if (ext != 'jpg' && ext != 'png' && ext != 'jpeg' && ext != 'gif') {
                alert('Invalid File Type (Only .png, .gif and .jpg)');
                return false;
            }
            else
                return true;
        }
    </script>


This is the markup for two AsyncFileUpload controls
XML
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true"
           CombineScripts="false">
       </asp:ToolkitScriptManager>
       <asp:AsyncFileUpload ID="AsyncFileUpload1" runat="server" OnUploadedComplete="AsyncFileUpload1_UploadComplete"
           OnClientUploadError="uploadError" OnClientUploadStarted="checkExtension" CompleteBackColor="SkyBlue"
           UploaderStyle="Traditional" BackColor="IndianRed" ErrorBackColor="Salmon" />
       <asp:AsyncFileUpload ID="AsyncFileUpload2" runat="server" OnUploadedComplete="AsyncFileUpload2_UploadComplete"
           OnClientUploadError="uploadError" OnClientUploadStarted="checkExtension" CompleteBackColor="SkyBlue"
           UploaderStyle="Traditional" BackColor="IndianRed" ErrorBackColor="Salmon" />


This is the code-behind:
C#
protected void AsyncFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        string FolderPath = Server.MapPath("./Documents") + "\\";
        string FileName = AsyncFileUpload1.FileName;
        string fileExtension = System.IO.Path.GetExtension(FolderPath + FileName);
        if (fileExtension == ".jpg" || fileExtension == ".png" || fileExtension == ".jpeg" || fileExtension == ".gif")
        {
            AsyncFileUpload1.SaveAs(FolderPath + FileName);
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Success", "alert('File uploaded');", true);
        }
    }
    protected void AsyncFileUpload2_UploadComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        string FolderPath = Server.MapPath("./Documents") + "\\";
        string FileName = AsyncFileUpload2.FileName;
        string fileExtension = System.IO.Path.GetExtension(FolderPath + FileName);
        if (fileExtension == ".jpg" || fileExtension == ".png" || fileExtension == ".jpeg" || fileExtension == ".gif")
        {
            AsyncFileUpload2.SaveAs(FolderPath + FileName);
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Success", "alert('File uploaded');", true);
        }
    }


This is working fine for me. Please note that I am using AjaxControlToolkit 4.0 January 2013 release.
 
Share this answer
 
v2
Comments
Naz_Firdouse 17-Apr-13 5:18am    
I already gone hrough those links...
None of them contains the solution...
Regarding using JQuery, I need two fileupload controls at tw odifferent places within a single page... but there only one is used to upload multiple files...
Zafar Sultan 17-Apr-13 6:36am    
In that case you can add two iframes on the same page and on both the pages in iframes, include two asyncfileupload controls. The whole issue seems to be about page postback. Having two different pages will sort out that. Try it and let us know if it worked.
Zafar Sultan 17-Apr-13 8:38am    
Please check my updated solution.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900