dedlfix: Datei clientseitig speichern

Beitrag lesen

Tach!

Um die Datei bei dir lokal zu speichern, mußt du weder eine Datei auf deinem Server erzeugen noch dort speichern.
Du stellst mit PHP die CSV-Daten zusammen und lieferst diese dann mit dem entsprechenden Header als CSV aus und bekommst damit eine Datei als Download im Browser angeboten, die du dann an beliebiger Stelle auf deinem Rechner speichern kannst.

Sein Problem ist möglicherweise die Abfolge. Wenn PHP gerade dabei ist, mit einem HTML-Dokument auf einen Request zu antworten, kann es nicht gleichzeitig noch ein CSV-Dokument senden. Dazu braucht es einen neuen Request seitens des Browsers. Da auf dem Server keine Dateien geschrieben werden können, muss das Erzeugen des CSV-Inhalts erst beim zweiten Request erfolgen. Eventuell benötigte Daten müssen als Querystring (GET), POST-Parameter, Cookie oder über eine Session durchgereicht werden, sofern sie nicht aus einer Datenhaltung abgefragt werden können.

Das Ablegen einer Datei auf dem Server, um sie in einem zweiten Schritt zu holen, wäre auch nicht besonders schön. Diese Datei muss am Ende wieder gelöscht werden. Das kann man zwar im zweiten Request machen, aber wenn der warum auch immer ausbleibt, bleibt eine Dateileiche liegen. Zudem kann es im Mehrnutzerbetrieb vorkommen, dass sich Vorgänge zweier Anwender für Anlegen und Löschen in die Quere kommen. Auch wenn das in der Praxis selten vorkommen mag, vermeidet man solche Situationen lieber von vornherein.

dedlfix.