Mausi: Daten beim Client speichern?

Einen wunderschönen guten Morgen allerseits!

Ich hätte da mal eine Frage...
Ich will folgendes: Ich zeige auf einer Webseite den Inhalt einer Tabelle einer Datenbank an. Ich will nun eine Option "Speichern als .txt-Datei" und eine Option "Speichern als .csv-Datei" zur Verfügung stellen, damit der User ein Abbild der Daten lokal auf seinem Rechner speichern kann.
Als Download geht das ja leider nicht, da die Daten natürlich immer auf dem neuesten Stand sein müssen, und somit ein feste Download-Datei den Sinn und Zweck verfehlt.
Kann man vielleicht über JavaScript lokal Sachen auf dem Client speichern? Wenn ja, wie macht man das?

Ich hätte da vielleicht selbst ein Idee: Wenn der User auf "Speichern" geht, lese ich über eine C++-Komponente die Tabelle aus, speichere Sie dann als .txt bzw. .csv lokal auf dem Server. Dann starte ich automatisch den Download dieser Datei. Das müßte eigentlich gehen, aber eine einfachere Lösung wäre schon nicht schlecht...

Okay... Vielen Dank schonmal für alle Antworten!

Mausi

  1. Morgen Mausi,

    Du hast die Antwort weiter unten schon selbst gegeben!! :-)
    Es geht nur über CGI (Perl, C, Asp, was auch immer).

    Reiner

    Einen wunderschönen guten Morgen allerseits!

    Ich hätte da mal eine Frage...
    Ich will folgendes: Ich zeige auf einer Webseite den Inhalt einer Tabelle einer Datenbank an. Ich will nun eine Option "Speichern als .txt-Datei" und eine Option "Speichern als .csv-Datei" zur Verfügung stellen, damit der User ein Abbild der Daten lokal auf seinem Rechner speichern kann.
    Als Download geht das ja leider nicht, da die Daten natürlich immer auf dem neuesten Stand sein müssen, und somit ein feste Download-Datei den Sinn und Zweck verfehlt.
    Kann man vielleicht über JavaScript lokal Sachen auf dem Client speichern? Wenn ja, wie macht man das?

    Ich hätte da vielleicht selbst ein Idee: Wenn der User auf "Speichern" geht, lese ich über eine C++-Komponente die Tabelle aus, speichere Sie dann als .txt bzw. .csv lokal auf dem Server. Dann starte ich automatisch den Download dieser Datei. Das müßte eigentlich gehen, aber eine einfachere Lösung wäre schon nicht schlecht...

    Okay... Vielen Dank schonmal für alle Antworten!

    Mausi

  2. Ich hätte da vielleicht selbst ein Idee: Wenn der User auf "Speichern" geht, lese ich über eine C++-Komponente die Tabelle aus, speichere Sie dann als .txt bzw. .csv lokal auf dem Server. Dann starte ich automatisch den Download dieser Datei. Das müßte eigentlich gehen, aber eine einfachere Lösung wäre schon nicht schlecht...

    Im Prinzip würde ich das ähnlich machen.

    Nur das Speichern auf dem Server ist keine gute Idee (was passiert, wenn das mehrere Besucher gleichzeitig auslösen?), und es ist auch gar nicht nötig.
    Generiere einfach ein txt- bzw- csv-Dokument und jage es via stdout über die Leitung, zusammen mit einem MIME-Type, der dem Browser keine andere Wahl als "Speichern" läßt ("application/octet-stream" oder was auch immer).

  3. Hallo Mausi

    Mit JavaScript ist sowas schon möglich, alerdings muß es der User erlauben.
    Es wird im Internet fast nie Benutzt und die USer werden, wenn eine Dialobox mit "Das Script
    will auf die Festplatte zugreifen. Risiko: Sehr hoch. Zustimmen:" kommt, wohl kaum auf ja clicken.
    Mit CGI kann man belibige Dateien ausgeben. Schreibe statt html einfach txt oder cvs auf stdout und
    gib den entsprechenten Mimetype zurück.

    Tschüs

    Daniel