2013-05-11 5 views
3

Мне интересно, есть ли возможный способ разбора двоичного файла на клиентском Javascript. Я хотел бы написать страницу, содержащую входную форму HTML для двоичного файла (звуковой файл - конечная игра) и кнопку, которая активирует функцию Javascript, которая «анализирует» файл. Возможно ли это с клиентским Javascript?Разбор двоичных файлов на стороне клиента JS

Я знаю, что могу сделать это с помощью C на сервере, но я бы хотел избежать того, что серверная сторона была задействована. Это связано с тем, что я ожидаю, что задача будет интенсивной с вычислительной точки зрения, и я бы хотел, чтобы загрузка и сервер были низкими.

Из того, что я видел в Google, можно обрабатывать двоичные данные в Javascript. Я просто не уверен, как получить файл в руках функции Javascript, не передав его сначала серверу.

ответ

3

Вы можете использовать FileReader API для чтения файла на стороне клиента

Пример:

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/ (посмотрите на консоль для выхода ArrayBuffer)

+0

спасибо! Похоже, readAsBinaryString() из этого API - именно то, что я ищу. – tay10r

Смежные вопросы