2017-12-27 13 views
2

나는 바이너리 파일을 항상 완전히로드 한 다음 그 안에있는 콘텐츠 블록을 스캔했습니다. 이것은 500K를 말할 때까지는 아무 문제가 없었습니다. 지금은 1G 이상으로 큰 파일을 검사하고 있습니다. (클라이언트 측)큰 (1G) 바이너리 파일을 자바 스크립트로로드 할 때 읽습니다.

5MB (1G만큼 큰 파일)를로드하는 것은 좋지 않으며 파일을로드하는 프로세스로 이동하고 싶습니다. 코드 블록을 잡고 처리 할 수 ​​있습니다. 파일 형식은 크기가있는 블록으로 구성됩니다. 그래서 헤더, 첫 번째 블록을 잡고 파일이로드 될 때 구문 분석을 할 수 있습니다.

누군가 내가이 작업이나 유용한 텍스트와 같은 좋은 코드 예제를 어디서 찾을 수 있는지 알고 있다면 매우 감사 할 것입니다.

로드하는 데 필요한 현재 코드는 다음과 같습니다. 입력 상자에서 Jquery를 변경하고 다른 함수를 호출하여 파일을 메모리로로드 한 다음 처리합니다. scanMyFile (버퍼)은 파일에서 모든 것을 식별하기 위해 arraybuffer가 전송 된 함수입니다.

$("#myfile").change(function (e) { 
    try { 
     readMyFile(e); 
    } catch (error) { 
     alert("Found this error : " + error); 
    } 
}); 


function readMyFile(evt) { 
    var f = evt.target.files[0]; 
    if (f) { 
     var r = new FileReader(); 
     r.onload = function (e) { 
     var buffer = r.result; 
     scanMyFile(buffer); 
     }; 
     r.readAsArrayBuffer(f); 
    } else { 
    alert("Failed to load file"); 
    } 
} 

답변

0

File 개체는 파일의 작은 뷰를 생성하는 .slice 방법을 제공 Blob의 인스턴스이다. filereader api on big files

:

이 질문을 확인 할 수 있습니다