2013-07-04 1 views
7

Javascript FileRead를 사용하여 거대한 파일을 읽는 데 문제가 있습니다.큰 파일과 함께 Javascript FileReader 사용

예를 들어 텍스트 파일이 200MB이고이 파일을 읽을 때마다 코드가 작동을 멈 춥니 다.

텍스트 파일을 읽을 수 있지만 예를 들어 처음 10 줄만 읽거나 10MB 후 읽는 것을 중지 할 수 있습니까?

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는 항상 파일의 전체 데이터가 :

이 내 코드입니다.

여기서 어떻게 할 수 있습니까?

들으

답변

10

이는 처음 10 메가 읽을 :

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

들으 Esailija이이 처음 10MB의 읽을 수는 있지만 파일이 메모리에 여전히 예 – ssamuel68

+1

, 난 원래의 질문에 대한 생각 완벽하게 작동 거대한 파일을 읽고 전체 파일을 메모리에로드하지 않습니다. 내가 옳지 않은가? – Yetti

+0

예 @ 예티 내 문제는 같습니다. 우리가 4GB 파일을 열려고하면 file.slice는 전체 파일을로드하려고 시도합니다. – Fatih