Check out this thread...
http://p2p.wrox.com/topic.asp?TOPIC_ID=7507
...and perhaps this is the guy who should have the credits...
http://www.eggheadcafe.com/articles/20010610.asp
... however it doen't solve the upload-file-problem as far as i know. The problem using this method is that you have no method for getting information about the small increments in the upload.
The solution is based on the fact you know how long the task is and then chopping it up and showing the progress as these small increments have occured.
An example can be checked out
here. I have used this progress bar on a site where the administrator can check for dead links stored in a database. I know how many links to check, and I know when I have checked one link, and therefore I can use this method.
Hope it helps :)
Jacob.