Ich erzeuge eine Textdatei mit ein paar zu exportierenden Daten.
Nun möchte ich, dass diese in einem Downloaddialog zum speichern angeboten werden, das klappt leider nicht. Es wird permanent der Inhalt der Datei im Browser dargestellt.
Ich erzeuge eine Textdatei mit ein paar zu exportierenden
Daten.
Nun möchte ich, dass diese in einem Downloaddialog zum
speichern angeboten werden, das klappt leider nicht. Es wird
permanent der Inhalt der Datei im Browser dargestellt.
Kann mir jemand uU bitte WEiterhlefen, dahcte eigtl., dass es
so klappen müsste.
…müsste es auch, nimm einmal einen anderen Browser, der IE meint leider, sich neben dem Content Type auch die Dateiendung und den Inhalt beurteilen zu müssen, und danach zu entscheiden, ob er die Datei anzeigt oder downloaded.
Für alle anderen Browser sind deine Zeilen (fast) korrekt, nur der Content-Type muss lt. RFC application/octet-stream sein (für den IE ist die Variante ohne „-“ aber besser).
Ja, Danke! Hab das mal noch eingefügt & Dateiendung geändert.
Dann klappt es.
Nur noch ein was, vielleicht weißt du oder jemand anderes das:
wenn ich nachdem er die Datei senden soll
ein
header(„Location: kasse.php“)
schreibe, ignoriert er das Dateisenden. Bzw. umgekehrt die
Locationanweisung.
Logisch, PHP macht daraus einen 302 Header
Hinter Location gehört außerdem immer die komplette URL, auch wenn es die meisten Browser auch so verstehen…
Wie kann ich den dazu übereden, das er nachdem die Datei
gespeichert wurde, die andere Seite geladen wird?
schreibe, ignoriert er das Dateisenden. Bzw. umgekehrt die
Locationanweisung.
Wie kann ich den dazu übereden, das er nachdem die Datei
gespeichert wurde, die andere Seite geladen wird?
nää das geht nicht, auf einen request gibt es genau eine antwort.
und location muss immer anstatt http ok kommen, also ganz am anfang.
und nachdem es bereits output gegeben hat (dein readfile), darfst du auch keine weiteren header mehr schicken.
was du machen kannst: auf der seite, auf die du mit location weiterleiten wolltest, mit meta-refresh oder js den dl starten.