An AngularJS directive for file upload using HTML5 with FileAPI polyfill for unsupported browsers