I am using:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
Replace your entire script with following:
<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
<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:
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.