6

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

我知道我可以在服务器上使用 C 来做到这一点,但我想避免涉及任何服务器端。这是因为我期望任务是计算密集型的,并且我希望保持负载和服务器低。

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

4

1 回答 1

6

You can use the FileReader API to read a file client-side

Example:

HTML Markup:

<input id="myfile" type="file"/>

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);
}

JSFiddle: http://jsfiddle.net/wbwHU/ (look at the console for ArrayBuffer output)

于 2013-05-11T08:10:32.160 回答