将文件转换为字节数值的数字

时间:2017-05-09 06:02:08

标签: javascript arrays angular typescript ionic2

我有这个PDF文件,我需要将其转换为字节值数字数组。

我之前已将其转换为base64,但将PDF转换为base64需要2MB PDF。 有没有其他方法可以更快地将PDF转换为base64或将该PDF文件转换为字节数组(看它是否比转换为base64更快)?

我以前使用filereader将文件读入dataURL。下面是我用来转换为base64的代码。

getFileContentAsBase64(path, callback) {
 window.resolveLocalFileSystemURL(path, gotFile, fail);

 function fail(e) {
   alert('Cannot found requested file');
 }

 function gotFile(fileEntry) {
   fileEntry.file(function (file) {
     var reader = new FileReader();
     reader.onloadend = function (e) {
       var content = this.result;
       callback(content);
     }
     reader.readAsDataURL(file);
   });
 }
}

修改

getFileContentAsBase64(path, callback) {
 window.resolveLocalFileSystemURL(path, gotFile, fail);

 function fail(e) {
   alert('Cannot found requested file');
 }

 function gotFile(fileEntry) {
   fileEntry.file(function (file) {
     var reader = new FileReader();
     reader.onloadend = function (e) {
       var content = this.result;
       var array = new Uint8Array(content);
       var binaryString = String.fromCharCode.apply(null, array);
       callback(content);
     }
     reader.readAsArrayBuffer(file);
   });
 }

}

1 个答案:

答案 0 :(得分:0)

我通过将文件转换为binaryString来克服这个问题,然后我从服务器端调用云函数来进行转换和保存文件。谢谢大家的帮助!〜