2015-08-25 7 views
2

Я использовал статью this, чтобы прочитать файл CSV с использованием JavaScript. Приведенный ниже код работает отлично в Chrome и Firefox, но IE 11 выдает следующее сообщение об ошибке:Чтение блобов в IE11

Object doesn't support property or method 'readAsBinaryString' 

при вызове:

reader.readAsBinaryString(blob); 

Согласно this MSDN статьи, однако, readAsBinaryString это метод поддерживается FileReader , Я что-то упустил/есть ли другой способ чтения файлов в IE 11?

HTML код:

<table> 
    <tr> 
     <td>Import CSV File</td> 
     <td><input type="file" id="files" name="file"/></td> 
    </tr> 
</table>  
<button id="read" href="#">Read</button> 

JS код:

//read a file 
function readBlob() { 

var files = document.getElementById('files').files; 

if (!files.length) { 
    alert('Please select a file!'); 
    return; 
} 

var file = files[0]; 
var start = 0; 
var stop = file.size - 1; 
var reader = new FileReader(); 

// If we use onloadend, we need to check the readyState. 
reader.onloadend = function(evt) { 
    if (evt.target.readyState == FileReader.DONE) { // DONE == 2 
     makeJSON(evt.target.result); 
    } 
}; 

var blob = file.slice(start, stop + 1); 
reader.readAsBinaryString(blob); 

}

ответ

5

FileReader также поддерживает метод readAsText, который может использоваться для чтения объекта File или Blob в качестве текстовой строки во всех трех браузерах (Chrome, FF и IE11).

Замена reader.readAsBinaryString(blob) на reader.readAsText(blob) устранена.

0

может быть, вы можете использовать это:

var binary = ""; 
var bytes = new Uint8Array(buffer); 
var length = bytes.byteLength; 
for (var i = 0; i < length; i++) { 
    binary += String.fromCharCode(bytes[i]); 
} 

Ссылка: Link

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