Async file upload UI