2015-05-29 4 views
0

Я пытаюсь прочитать двоичный файл в JavaScript.Ошибка чтения двоичного файла

Однако он ничего не возвращает. Что случилось с командой ниже?

function autenticarbiometria() { 
    var fileInput = document.getElementById('fileInput'); 
    var file = fileInput.files[0]; 
    var reader = new FileReader(); 
    var campo = ""; 
    var status = "f"; 

    filereader.onload = function(e) { 
     var campo = reader.result; 
     document.getElementById('template').value = campo; 
     alert("CAMPO TAMANHO --> " + campo.length); 
    } 
    reader.readAsArrayBuffer(file); 
    ... 

ответ

2

ArrayBuffer не может быть установлен как строка. Вам нужно преобразовать содержимое в строку или представление Base-64/hex, если двоичные данные не подлежат печати.

Для текста вы можете использовать новый объект TextDecoder (возможно, в некоторых браузерах может понадобиться polyfill).

Пример

var td = new TextDecoder("utf-8"); // or use utf-16 etc. depending on what you expect 
var txt = td.decode(campo);   // pass in the ArrayBuffer 

Теперь txt можно установить в качестве источника строки для вашего элемента (если читаемым).

Также обратите внимание, что у вас есть локальный var campo, который переопределяет родительский var campo.

2

Если это не будет:

var fr = new FileReader; 
var txt = fr.readAsText(document.getElementById('fileInput').files[0]); 
fr.onloadend = function(r){ 
    console.log(r); 
} 
+0

Это на самом деле хорошая точка. Я предположил, что он хочет читать двоичные файлы из-за названия, но это может быть проще, если текст является целью. – K3N

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