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

时间:2013-05-11 08:06:53

标签: javascript file-io binaryfiles

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

我知道我可以在服务器上用C来做这件事,但我想避免涉及服务器端的任何事情。这是因为我期望这项任务是计算密集型的,我希望将负载和服务器保持在低水平。

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

1 个答案:

答案 0 :(得分:3)

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

示例:

HTML标记:

<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/(查看控制台的ArrayBuffer输出)