好的,所以我是IndexedDB的新手,對Javascript沒有特別的經驗。現在,我已經有了代碼工作,用戶可以瀏覽文件系統中的文件,並且在選中時將文件分解爲塊(通過使用片),將這些塊轉換爲十六進制字符串,然後字符串(和一個鍵)存儲在IndexedDB中。IndexedDB保存範圍爲
這種模式的好處是用戶可以選擇一個非常大的文件,而且,由於我使用的是正確的結構,整個文件不需要一次加載到內存中。
現在我試圖讀取這些十六進制字符串,當瀏覽器彈出一個「另存爲」對話框時,用戶點擊一個按鈕。問題是我沒有設法找到一種方法將數據從IndexedDB「流」到另存爲輸入。你們有沒有意識到有辦法做到這一點?我的結局很短暫。
由於
我不認爲你可以流它。我可以很容易找出一種方法來合併數據並保存它,但流式傳輸:除非您願意上傳到服務器然後進行流式傳輸(這完全破壞了這一點),但我認爲沒有辦法 – Markasoftware
Right 。我已經考慮過兩種情況,我擔心如果文件太大,將所有十六進制(或base64或blob或其他)連接在一起可能會引發內存異常。 FileReader slice操作讓我可以一次處理一個文件塊,我真的希望這個文件有一個可行的選項。 –
喜歡...多大? – Markasoftware