Öffnen von Zip-Dateien im Browser mit FileReader und JSZip.js

9

Ich versuche mit FileReader und JSZip.js Zip-Dateien im Browser zu öffnen und dann die enthaltenen Dateien zu bearbeiten. Ich kann nicht herausfinden, wie man das FileReader-Objekt korrekt an JSZip übergibt.

Hier ist eine abgespeckte Version der Seite, die ich benutze, um das Javascript zu laden:

%Vor%

Und das Javascript in zipscan.js nach dem Entfernen aller unnötigen Code:

%Vor%

Die erste Warnung zeigt [Objekt FileReader] an, und die zweite führt zu einem TypeError, archive.file (...) ist null.

Ich habe die readAsText-Methode von FileReader mit demselben Code verwendet, um Textdateien erfolgreich zu öffnen. Wenn es also einen Fehler gibt, verwende ich entweder readsAsArrayBuffer (die JSZip-Dokumentation hat es vorgeschlagen) oder die Art, wie ich sie benutze. Fast alle Ressourcen, die ich über JSZip gefunden habe, verwenden die alte Methode mit Konstruktorparametern anstelle von loadAsync, also könnte es sein, dass ich es nicht richtig benutze.

    
P.Diddle 17.06.2016, 07:52
quelle

1 Antwort

4

Sie können ein Objekt File direkt übergeben, ohne über FileReader gehen zu müssen. Ein File -Objekt ist selbst ein (erweitertes) Blob , das JSZip als Argument für loadAsync() verwenden kann.

Arbeitsbeispiel

%Vor% %Vor%
    
epistemex 17.06.2016 08:43
quelle

Tags und Links