To me, adding the ability to upload files is always such a hassle. I think it’s because I’ve only had reason to do it a few times in my career, so I never really established a solid pattern (though they typically used COS on the Java server side).
There’s an interesting AJAX uploader JQuery plugin that really simplifies the front-end, and better yet, comes with sample back-end code for Perl, PHP, CF and, most importantly for me, Java. It executes the Java side as a typical HttpServlet, so it should be easy to incorporate into your stack.
On the front-end, it supports drag-and-drop in Chrome and Firefox, with a progress bar in Firefox, Chrome and Safari.
So, what if you want to support Internet Explorer? Easy! Check out Google Frame, and make WebKit your go-to renderer on IE.