2013-07-04 24 views
7

Mam problem z wykorzystaniem Javascript FileRead próbuje odczytać ogromne pliki.Używanie Javascript FileReader z ogromnymi plikami

Na przykład mam plik tekstowy 200 MB i za każdym razem, gdy czytam ten plik, kod przestaje działać.

Czy można odczytać plik tekstowy, ale na przykład TYLKO pierwsze 10 wierszy lub zatrzymać czytanie po 10mb?

To jest mój kod:

var file = form.getEl().down('input[type=file]').dom.files[0]; 
var reader = new FileReader(); 

reader.onload = (function(theFile) { 
       return function(e) { 
        data = e.target.result; 
        form.displayedData=data; 
       }; 
      })(file); 

reader.readAsText(file); 

e.target.result zawsze ma cały dane pliku.

Co mogę tutaj zrobić?

Thx

Odpowiedz

10

będzie to czytać tylko pierwsze 10 MB:

var file = form.getEl().down('input[type=file]').dom.files[0]; 
var reader = new FileReader(); 

reader.onload = function(e) { 
    var data = e.target.result; 
    form.displayedData = data; 
}; 

reader.readAsText(file.slice(0, 10 * 1024 * 1024)); 
+0

Thx Esailija działa to doskonały – ssamuel68

+1

Tak to czytać pierwszy 10MB ale plik jest ciągle w pamięci, myślę oryginalne pytanie było o czytanie ogromnych plików i nie wczytywanie całego pliku do pamięci. Czy nie mam racji? – Yetti

+0

Tak @Yetti mój problem jest taki sam. jeśli spróbujemy otworzyć plik 4GB, file.slice spróbuje załadować cały plik. – Fatih