I've been fighting this control for a while now. I've found work arounds to some issues, which I will share, but I've also found some fundamental flaws which should never have passed QA. I'm using 2008.2
Client problems
1. Client API doesn't work if you haven't set a file input template.
The client side API for adding, removing and clearing file from the input don't work if you haven't provided a file input template. The problem is the 'Render' method doesn't do anything if no template is provided.
Work around.
The render method can be forced to work by setting a secret boolean.
fileUploadControl.clearFiles();
fileUploadControl.addFile();
fileUploadControl.StaticContent = false;
fileUploadControl.Render();
fileUploadControl.StaticContent = true;
3. Client event ProgressUpdate isn't fired.
Intellisense in the aspx page will show you a client event called ProgressUpdate. when a handler is provided it never executed.
Work around.
Ignore it, it's never looked at.
Server problems
4. Half uploaded temporary files aren't deleted
The UploadModule doesn't dispose of half upload files. the UploadedFileInfo class should implement IDisposeable. If you close the browser, do an abort or stop the upload in some other way you will not be able to delete the half uploaded file.
Work around.
Schedule a task to regularly delete files from the temp folder. I actually fixed the source but not everyone has that option.
5. Possible memory leak
The upload control adds an UploadInfo class to the application state when it is rendered to the form. If the file upload is not used to upload files then the no code will be executed to remove the the object from the application state. A post back of an a empty file upload doesn't remove this object either.
Work around.
Reboot server regularly.
Conclusion
The file upload control should have never been released in this state or should have at least been fixed in the last release. On the whole I am very disappointed with the controls I've used so far. The ideas are great but the implementation is rushed. In my opinion, the focus on broad platforms, new controls and lack of testing has compromised quality.