First of all - a lovely piece of code! Thanks you for putting in the time to develop this.
I do want to check my understanding of the allowed fileExt parameter. It seems to only be used by Flash to populate the 'Files of Type' box in the browse files requester, and can easily be overidden by typing any file name into the 'File Name' box on the browse requester. Eg: my fileExt and fileDesc can be set to *.doc;' but I can type 'myfile.txt' into the requester and get 'myfile.txt' to appear in the upload queue, and upload.
Am I understanding correctly or is there someting in the docs I have missed?
Possibly, uploadifyError would be triggered when a disallowed fileExt was added to the queue using the above method, with a type of 'Disallowed File'. The user would then have to delete the file from the queue. I could code this for my own purposes, but I think it's a useful feature to suggest generally.
Let me know if I've misunderstood or if this isn't suitable for some reason, so I can work my own way round it.
This has been mentioned before and the best and most secure way to do this is to customize your server-side code to check for allowed file types. I have an example in the uploadify.php file included with the zip package. Since this is something that is environment specific, I didn't include a default way of doing this.