2013-12-18 1 views
3

으로 저장합니다. 그렇기 때문에 IndexedDB를 처음 사용하고 특히 자바를 사용하지 않았습니다. 지금은 사용자가 파일 시스템에서 파일을 탐색 할 수 있도록 코드가 작동하고 선택하면 파일이 청크로 분할되고 슬라이스를 사용하여 청크가 16 진수 문자열로 변환됩니다. 문자열 (키와 함께)은 IndexedDB에 저장됩니다.IndexedDB 범위를

이 방법에 대한 좋은 점은 사용자가 매우 큰 파일을 선택할 수 있으며 올바른 구조를 사용하기 때문에 전체 파일을 한 번에 메모리에 모두로드 할 필요가 없다는 것입니다.

이제는 16 진수 문자열을 읽고 사용자가 버튼을 클릭 할 때 브라우저에 "다른 이름으로 저장"대화 상자가 나타납니다. 문제는 IndexedDB에서 다른 이름으로 저장 입력으로 데이터를 "스트리밍"하는 방법을 찾지 못했기 때문입니다. 당신이이 일을하는 방법을 알고 있습니까? 나는 내 끝에 아주 짧게 올라간다.

감사

+0

나는 당신이 그것을 스트리밍 할 수 있다고 생각하지 않는다. 데이터를 결합하고 저장하는 방법을 쉽게 알아낼 수는 있지만 스트리밍 : 서버에 업로드 한 다음 스트리밍하여 (지점을 완전히 없애기 만하면), 방법이 없다고 생각합니다. – Markasoftware

+0

오른쪽 . 두 시나리오를 모두 고려했습니다. 파일이 너무 크면 모든 16 진수 (또는 기본 64 또는 blob 또는 기타)를 함께 연결하면 메모리 예외가 발생할 가능성이 있습니다. FileReader 슬라이스 작업을 통해 파일을 한 번에 처리 할 수있게되었습니다 ... 실제로 파일이 나오기위한 가능한 옵션이 있기를 바랬습니다. –

+0

좋아 ... 얼마나 크지? – Markasoftware

답변

1

색인화이 부분 (또는 돌출부를) 할 수없는 기록에 읽기/쓰기. FileSystem API는 대용량 파일을 순차적으로 탐색하는 것과 같은 사용 사례를위한 것이므로 가능성이 있습니다. 그러나 확실하지 않습니다.

이 최근 토론, IndexedDB, Blobs and partial Blobs - Large Files을 확인하시기 바랍니다. 그들은 문제 해결 방법에 대해서도 논의합니다.

+1

내 문제가 아닌 IndexedDB에 데이터를 가져 오기 위해 연결된 토론. 최종 사용자에게 링크를 제공하는 것이 좋습니다. 이를 클릭하면 브라우저가 로컬 시스템의 어딘가에 파일을 저장하라는 메시지를 표시 한 다음 위치를 선택하면 IndexedDB에서 한 번에 한 항목 씩 데이터를 읽거나 항목을 차례로 연결하는 등의 작업을 수행 할 수 있습니다. 결과 파일을 구성하십시오. –