在Javascript中加载时读取大(1G)二进制文件

时间:2017-12-27 03:22:18

标签: javascript jquery html5

我总是完全加载二进制文件,然后继续扫描其中的内容块。对于任何高达500K的东西都可以。我现在正在研究扫描1G或更高的文件。 (客户方)

加载大于5mb(大到1G)的文件并不是很好,而我想转移到一个进程,当文件加载时我可以抓取代码块并处理它。文件格式由具有大小的块组成。所以我可以抓住标题,第一个块并在文件加载时进行解析。

如果有人知道我在哪里可以找到一些像这样工作的代码的好例子,或者我能阅读的有用文本,我将非常感激。

我目前的加载代码如下。 Jquery更改输入框,调用另一个函数将文件加载到内存中,然后处理它。 scanMyFile(buffer)是一个函数,然后发送arraybuffer来识别文件中的所有内容。

$("#myfile").change(function (e) {
   try {
       readMyFile(e);
   } catch (error) {
       alert("Found this error : " + error);
   }
});


function readMyFile(evt) {
   var f = evt.target.files[0];
   if (f) {
      var r = new FileReader();
      r.onload = function (e) {
        var buffer = r.result;
        scanMyFile(buffer);
      };
      r.readAsArrayBuffer(f);
  } else {
    alert("Failed to load file");
  }
}

1 个答案:

答案 0 :(得分:0)

  

File个对象也是Blob的一个实例,它提供.slice方法来创建较小的文件视图。

可能想看看这个问题: filereader api on big files