在客户端JS中解析二进制文件

tay*_*10r 6 javascript file-io binaryfiles

我想知道是否有任何可能的方法来解析客户端 Javascript 中的二进制文件。我想编写一个页面,其中包含二进制文件的 HTML 输入表单(最终游戏是声音文件)和激活“解析”文件的 Javascript 函数的按钮。这可以通过客户端 Javascript 实现吗?

我知道我可以在服务器上使用 C 来完成此操作,但我想避免涉及服务器端的任何内容。这是因为我预计该任务是计算密集型的,并且我希望保持负载和服务器较低。

从我在 Google 上看到的情况来看,可以用 Javascript 解析二进制数据。我只是不确定如何在不先将文件传递到服务器的情况下将文件交给 Javascript 函数。

los*_*rce 6

您可以使用FileReader API 在客户端读取文件

例子:

HTML 标记:

<input id="myfile" type="file"/>
Run Code Online (Sandbox Code Playgroud)

JavaScript:

var fileInput = document.getElementById('myfile');
var fReader = new FileReader();

fReader.onload = function(e) {
  console.log(e.target.result); /// <-- this contains an ArrayBuffer
}

fileInput.onchange = function(e) {
    var file = this.files[0];
    fReader.readAsArrayBuffer(file);
}
Run Code Online (Sandbox Code Playgroud)

JSFiddle: http: //jsfiddle.net/wbwHU/(查看控制台以获取 ArrayBuffer 输出)