Ist es möglich, ein File-Objekt in LocalStorage zu speichern und dann eine Datei über FileReader neu zu laden, wenn ein Benutzer auf eine Seite zurückkehrt?

9

Beispiel: Der Benutzer lädt einige sehr große Bilder oder Mediendateien in Ihre Webanwendung. Wenn sie zurückkehren, möchten Sie, dass Ihre App das anzeigt, was sie zuvor geladen haben, aber die tatsächlichen Dateidaten können nicht in LocalStorage gespeichert werden, da die Daten zu groß sind.

    
Ronald 28.05.2011, 00:19
quelle

3 Antworten

4

Dies ist NICHT mit localStorage möglich. Die in localStorage gespeicherten Daten müssen einer der primitiven Typen sein, die serialisiert werden können. Dies beinhaltet nicht das Objekt File .

Dies funktioniert beispielsweise nicht wie erwartet:

%Vor%

Die Lösung besteht darin, eine leistungsfähigere Speicheroption wie das Schreiben der Dateiinhalte in das HTML5-Dateisystem oder versteckt es in IndexedDB .

    
ebidel 24.08.2011 03:41
quelle
-1

Technisch können Sie, wenn Sie nur kleine Dateien in localStorage speichern müssen.

Nur base64 das ist ish und da es eine Zeichenfolge ist ... es ist localStorage-freundlich.

Ich denke, localStorage hat ein Limit von ~ 5MB. base64-Strings haben eine recht geringe Dateigröße, daher ist dies eine praktikable Möglichkeit, kleine Bilder zu speichern. Wenn Sie den Weg dieses faulen Mannes benutzen, müssen Sie die 5MB Grenze beachten. Ich denke, es könnte eine Lösung sein, die auf Ihre Bedürfnisse zugeschnitten ist.

    
williamle8300 22.09.2015 01:20
quelle
-2

Ja, das ist möglich. Sie können beliebige Informationen über die gewünschte Datei in LocalStorage einfügen, vorausgesetzt, Sie führen eine Serialisierung zu einem der unterstützten primitiven Typen durch . Sie können die gesamte Datei auch in LocalStorage serialisieren und später abrufen, wenn Sie möchten, aber die Größe der Datei hängt vom Browser ab.

Im Folgenden wird gezeigt, wie dies mit zwei verschiedenen Ansätzen erreicht wird:

%Vor%

Quelle

    
mac 17.08.2011 22:24
quelle

Tags und Links