1UnitedPower: Datei erstellen

Wurde bei der Entwicklung von HTML5 je darüber diskutiert Schreibzugriff auf dem lokalen Dateisystem einzuführen? Oder gibt es sogar eine Möglichkeit?

Anwendungsfall ist folgender: Ich schreibe im Moment an einem 3D-Szende-Editor und würde gerne eine Speichermethode zur Verfügung stellen, die auch im Offline-Betrieb funktionieren soll.

  1. Hi!

    Wurde bei der Entwicklung von HTML5 je darüber diskutiert Schreibzugriff auf dem lokalen Dateisystem einzuführen? Oder gibt es sogar eine Möglichkeit?

    Anwendungsfall ist folgender: Ich schreibe im Moment an einem 3D-Szende-Editor und würde gerne eine Speichermethode zur Verfügung stellen, die auch im Offline-Betrieb funktionieren soll.

    Spontan hätte ich jetzt an local storage gedacht.
    Kann aber auch sein, dass ich völlig falsch verstanden habe ... ;-)

    Und hier noch etwas über den Browser Support.

    Gruß Gunther

    1. [latex]Mae  govannen![/latex]

      Anwendungsfall ist folgender: Ich schreibe im Moment an einem 3D-Szende-Editor und würde gerne eine Speichermethode zur Verfügung stellen, die auch im Offline-Betrieb funktionieren soll.

      Spontan hätte ich jetzt an local storage gedacht.
      Kann aber auch sein, dass ich völlig falsch verstanden habe ... ;-)

      localStorage (wie auch clientseitige DB) ist allerdings nur dann eine Option, wenn genau ein Computer mit genau einem Browser genutzt wird.

      Und hier noch etwas über den Browser Support.

      Der über drei Jahre alte Artikel dürfte inzwischen irrelevant sein.
      http://caniuse.com/#feat=namevalue-storage

      Stur lächeln und winken, Männer!
      Kai

      --
      „Die Borg würden nicht mal Spaß verstehen, wenn sie einen Vergnügungspark assimiliert hätten!” (B'Elanna Torres)
      SelfHTML-Forum-Stylesheet
    2. Spontan hätte ich jetzt an local storage gedacht.
      Kann aber auch sein, dass ich völlig falsch verstanden habe ... ;-)

      Danke für deine Bemühungen, localStorage ist mir bekannt und ich benutze ihn auch um eine gewisse Persistenz zu erzeugen, aber für die Speichermethode, die ich mir vorgestellt habe nicht zu gebrauchen. Dennoch Danke!

  2. Anwendungsfall ist folgender: Ich schreibe im Moment an einem 3D-Szende-Editor und würde gerne eine Speichermethode zur Verfügung stellen, die auch im Offline-Betrieb funktionieren soll.

    Mit Browsern die

    • Blob
    • FileReader
    • window.open mit Data-URLs

    unterstützen sollte sich was zusammenbasteln lassen:

    • Blob mit 3D-Daten und passendem Mimetype anlegen
    • FileReader anlegen
    • FileReader.readDataURL mit Blob aufrufen
    • Im onload-Event des FileReaders ein neues Fenster mit dem Ergebniss erzeugen.

    Diese Stabilität dieser APIs mit umfangreichen Daten würde ich im Moment allerdings noch als Verbesserungwürdig bezeichnen.)

    1. Sehr hübsche Lösung, funktioniert einwandfrei! Tausend Dank!

      • Im onload-Event des FileReaders ein neues Fenster mit dem Ergebniss erzeugen.

      Dieser Punkt hat einige Schönheitsmankos. Stattdessen habe ich ein a-Element erzeugt, das href-Attribute mit dem Ergebnis des FileReaders versehen, das download-Attribut gesetzt und anschließend das click-Event getriggert. Das hat den Vorteil, dass ich einen Dateinamen vorgeben kann und der Benutzer je nach Browsereinstellungen diesen selber noch wählen kann. Weiterhin öffnet sich kein weiteres Browserfenster.

        • Im onload-Event des FileReaders ein neues Fenster mit dem Ergebniss erzeugen.

        Dieser Punkt hat einige Schönheitsmankos. Stattdessen habe ich ein a-Element erzeugt, das href-Attribute mit dem Ergebnis des FileReaders versehen, das download-Attribut gesetzt und anschließend das click-Event getriggert. Das hat den Vorteil, dass ich einen Dateinamen vorgeben kann und der Benutzer je nach Browsereinstellungen diesen selber noch wählen kann. Weiterhin öffnet sich kein weiteres Browserfenster.

        Gute Lösung. Damit sollte das ganze tatsächlich in aktuellen Browsern nutzbar sein.)

  3. Falls sowas mal kommt, weiß jemand wie man das abstellen kann?
    Ist was über ein Sicherheitskonzept bekannt?
    Oder gibts dann erst mal etliche <ironie>sehr überraschende</ironie> Exploits bis man davon wieder abkommt?

    1. Falls sowas mal kommt, weiß jemand wie man das abstellen kann?
      Ist was über ein Sicherheitskonzept bekannt?
      Oder gibts dann erst mal etliche <ironie>sehr überraschende</ironie> Exploits bis man davon wieder abkommt?

      Ich hab mich vielleicht etwas unklar ausgedrückt. Es war nicht meine Absicht irgendwo im Dateisystem eine Datei anzulegen, sondern einen Dateidownload zu starten, der vom Benutzer kontrolliert werden kann.