javascript - 将文件转换为字节值数字数组

标签 javascript arrays angular typescript ionic2

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

我之前已将其转换为 Base64,但对于 2MB PDF,将 PDF 转换为 Base64 需要很长时间。 是否有另一种方法可以更快地将 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);
   });
 }

}

最佳答案

我通过将文件转换为二进制字符串来解决这个问题,然后我从服务器端调用云函数来进行文件的转换和保存。谢谢大家帮忙!~

关于javascript - 将文件转换为字节值数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43862211/

相关文章:

javascript - foreach 循环中的函数?

javascript - 我怎样才能改变我的reduce()来对数字求和,直到得到所要求的数字?

java - 使用 3 种方法

ios - fatal error 索引超出范围 swift 3 SpriteKit

Angular 7 Bootstrap 指令不加载

Angular2 Rxjs 404 错误

javascript - 为什么将元素添加到不可见元素中将这些元素设置为在 "style"属性中不可见?

javascript - 如何在 Canvas 上使用多次点击事件

C++ 数组大小初始化

Angular 6 - 创建(非根)模块范围服务