Subir Archivo Javascript HTML5

Con este codigo podemos subir un archivo JSON, TXT, XML …. con funciones nativas de html5 y enviarlo luego mediante $http

<input type="file" id="file" name="file" accept=".xls,.xlsx,.xml" />
<button ng-click="add()">Add</button>

var f = document.getElementById('file').files[0],
            r = new FileReader();

        r.onloadend = function(e) {
          var data = e.target.result;
          var b64 = btoa(data); //LO COMPRIMO EN BASE64
          console.log(b64);
        }

        r.readAsBinaryString(f);