Ralf: Dateiverarbeitung aus Javascript

Hallo!

Leider ist ja aus Javascript heraus keine Dateiverarbeitung möglich, obwohl das manchmal wünschenswert wäre. Bei der Suche bin ich auf folgenden, schon etwas älteren Feature-Artikel gestoßen:
http://aktuell.de.selfhtml.org/artikel/javascript/file-open/index.htm

Zum einen ist die dort referenzierte ZIP-Datei wohl defekt und zum anderen bräuchte ich eher eine Ausgabemöglichkeit - im konkreten Fall möchte ich eine CSV-Datei erzeugen.

Gibt es irgendwo ein Java Applet analog zum "fileopener" des Feature-Artikels?

Mir ist schon klar, dass ich das in PHP lösen könnte, aber dafür müssten die im Client bereits vorliegenden Daten erst per HTTP POST zum Server gebracht werden (um sie dann anschließend wieder zum Client zu transportieren).

Oder gibt es eine noch bessere Möglichkeit, die mir nicht bekannt ist?

Ralf

  1. Lieber Ralf,

    bräuchte ich eher eine Ausgabemöglichkeit - im konkreten Fall möchte ich eine CSV-Datei erzeugen.

    und was soll JavaScript mit dieser Datei machen, nachdem es sie erstellt hat?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Felix,

      und was soll JavaScript mit dieser Datei machen, nachdem es sie erstellt hat?

      Ich weiss nicht, ob ich die Frage verstehe. Ich habe in Javascript Daten erzeugt und möchte dem Benutzer die Möglichkeit geben, diese zu speichern. Damit "machen" soll JavaScript gar nichts. Der Vorgang wäre beendet, wenn die Daten dem Benutzer in dieser Form zur Verfügung stehen.

      Ralf

      1. Lieber Ralf,

        und was soll JavaScript mit dieser Datei machen, nachdem es sie erstellt hat?

        möchte dem Benutzer die Möglichkeit geben, diese zu speichern.

        ...und wo? Lokal oder online? Ich denke, letzteres ist nicht nur sinnvoller, sondern auch das einzig Mögliche...

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hallo Felix,

          ...und wo? Lokal oder online? Ich denke, letzteres ist nicht nur sinnvoller, sondern auch das einzig Mögliche...

          Lokal wäre zwar im konkreten Fall besser, weil sich die Daten "im Browser" befinden und auch auf dem Client weiterverarbeitet werden sollen. Ich bin aber an jeder Lösung interessiert, die eine permanente Speicherung ermöglicht. Am besten in einem Dialog "speichern unter" o.ä.

          Ralf

          1. Lieber Ralf,

            Lokal [...] Am besten in einem Dialog "speichern unter" o.ä.

            dann bleibt Dir nur entweder ein Java-Applet zu schreiben, das dieses leistet, oder Du machst das Ganze serverseitig mit einem echten Dateidownload. Für letzteres kannst Du mit entsprechenden Headern ('Content-Type: application/octet-stream', 'Content-Disposition: attachment; filename="dateiname.end"') den Browser zu ebendiesem Dialog zwingen.

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. Hallo Felix,

              dann bleibt Dir nur entweder ein Java-Applet zu schreiben, das dieses leistet, oder Du machst das Ganze serverseitig mit einem echten Dateidownload. Für letzteres kannst Du mit entsprechenden Headern ('Content-Type: application/octet-stream', 'Content-Disposition: attachment; filename="dateiname.end"') den Browser zu ebendiesem Dialog zwingen.

              Daher hatte ich in meinem Eingangsposting auch schon gefragt, ob so ein Applet existiert. Auch die serverseitige Lösung hatte ich erwähnt, aber als eher unzweckmäßig (wegen des doppelten Datentransfers) bezeichnet.

              Du hattest gefragt, ob es unbedingt lokal müsste. Gibt es denn mittels JavaScript eine Möglichkeit, wenn es nicht lokal sein muss?

              Ralf

              1. Lieber Ralf,

                Du hattest gefragt, ob es unbedingt lokal müsste. Gibt es denn mittels JavaScript eine Möglichkeit, wenn es nicht lokal sein muss?

                das ist jetzt vielleicht ein Missverständnis, aber "nicht lokal" bedeutet für mich "auf dem Server", daher könnte JavaScript die Daten per POST an den Server schicken, der sie in eine Datei (*.csv) schreibt.

                JavaScript hat nunmal keinen direkten Zugriff auf das Dateisystem des Anwenders, daher kann es selbst eine solche Datei nicht auf der Festplatte anlegen. Ein Java-Applet hingegen könnte schon... Aber nein, ich kenne kein bereits fertiges Applet, da ich in Java noch nie etwas gemacht habe.

                Liebe Grüße aus Ellwangen,

                Felix Riesterer.

                --
                ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                1. Hallo Felix,

                  das ist jetzt vielleicht ein Missverständnis, aber "nicht lokal" bedeutet für mich "auf dem Server", daher könnte JavaScript die Daten per POST an den Server schicken, der sie in eine Datei (*.csv) schreibt.

                  Das genau habe ich eben wegen des doppelten Datentransportes schon verworfen, wobei eher der Upload das Problem ist, wenn die Datenmenge Richtung MB geht. Das dauert dann doch schon einige Zeit ...

                  JavaScript hat nunmal keinen direkten Zugriff auf das Dateisystem des Anwenders, daher kann es selbst eine solche Datei nicht auf der Festplatte anlegen. Ein Java-Applet hingegen könnte schon... Aber nein, ich kenne kein bereits fertiges Applet, da ich in Java noch nie etwas gemacht habe.

                  Dann will ich mal weiterforschen, denn mit Java habe ich mich auch noch nicht befasst.

                  Ralf