<ajax:AsyncFileUpload ID="fuSlides" Width="400px" runat="server"
OnClientUploadError="uploadError"
OnClientUploadStarted="StartUpload"
OnClientUploadComplete="UploadComplete"
CompleteBackColor="Lime"
UploaderStyle="Modern"
ErrorBackColor="Red"
onuploadedcomplete="fuSlides_UploadedComplete"
UploadingBackColor="#66CCFF" />
<script type="text/javascript" language="javascript">
function uploadError(sender, args) {
// alert("[" + lblStatus + "]"); return false;
document.getElementById('<%= lblStatus.ClientID %>').innerHTML = args.get_errorMessage();
alert(args.get_fileName() + ' could not be uploaded. ' + args.get_errorMessage());
}
function StartUpload(sender, args) {
// alert("[" + fuSlides + "]"); return false;
var filename = args.get_fileName();
var filext = filename.substring(filename.lastIndexOf(".") + 1);
if (filext == "doc" || filext == "docx" || filext == "pdf" || filext == "pages" || filext == "pptx" || filext == "ppt") {
return true;
}
else {
var err = new Error();
err.name = 'My API Input Error';
err.message = 'Only .ppt, .pptx, .doc, .docx, or .pdf files';
throw (err);
return false;
}
}
function UploadComplete(sender, args) {
var filename = args.get_fileName();
var contentType = args.get_contentType();
var text = "Size of " + filename + " is " + args.get_length() + " bytes";
if (contentType.length > 0) {
text += " and content type is '" + contentType + "'.";
__doPostBack('UploadPostback', '');
}
}
If you're sure about those two steps and still you get the same error, the simple workaround is to change the value of "ClientIDMode" to "AutoID".