So in the end seems that HTML5 finally solved the problem with the upload (showing the progress as the file uploads). Essentially, to create this you need to hook into the server’s byte stream while it is receiving a file so you know how many bytes you received and send that information back to the user.
Well, Matlus has provides us a great tutorial on how to make an file upload with progress using HTML5. This uses XMLHttpRequest and provides upload progress to end-users. This method doesn’t require any modifications on the server side, so the existing logic should remain unchanged making adapting this technology much easier.
Upload file with progress: HTML5 example