2013-05-11 136 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