2013-05-11 137 views
3

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

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

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

回答

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输出的控制台)

+0

谢谢!它看起来像这个API的readAsBinaryString()正是我正在寻找的。 – tay10r 2013-05-11 08:12:08