Hallo zusammen,
ich erstelle in einer Funktion einen String, speichere diesen in eine Datei und lasse dann per header() den Datei-Downloadialog anzeigen.
Jetzt habe ich folgendes Problem: Wenn ich sage "Speichern unter..." wird nicht die generierte Datei vom Server runtergeladen, sondern eine andere Datei erzeugt (zwar mit dem gleichen Namen), in der der HTML-Code des Browsers angezeigt wird...
Die Funktion wird aus meiner index.php aus aufgerufen.
Weiter unten wird der Output und das Parsen durch Smarty mittels $OutputUnterdruecken verhindert.
Die Funktion EigeneBuchungen erzeugt eine neue Instanz der Klasse "DatahandlingCSV". Durch versch. Funktionen werden hier Daten zu der CSV-Datei hinzugefügt (funktioniert auch... wenn ich die Datei auf dem Server anschaue ist alles korrekt, daher poste ich den teil nicht).
Hier der Part mit dem header (Methode der Klasse):
Wo liegt der Fehler?
VIELEN DANK!
strauberry
ich erstelle in einer Funktion einen String, speichere diesen in eine Datei und lasse dann per header() den Datei-Downloadialog anzeigen.
Jetzt habe ich folgendes Problem: Wenn ich sage "Speichern unter..." wird nicht die generierte Datei vom Server runtergeladen, sondern eine andere Datei erzeugt (zwar mit dem gleichen Namen), in der der HTML-Code des Browsers angezeigt wird...
Die Funktion wird aus meiner index.php aus aufgerufen.
PHP-Code:
case "EigeneBuchungenCSV":
include_once "libs/auswertungen.php";
include_once "libs/DatahandlingCSV.class.php";
EigeneBuchungen($tpleng, $db_link, $_GET, "", 'CSV');
$OutputUnterdruecken = true;
break;
Die Funktion EigeneBuchungen erzeugt eine neue Instanz der Klasse "DatahandlingCSV". Durch versch. Funktionen werden hier Daten zu der CSV-Datei hinzugefügt (funktioniert auch... wenn ich die Datei auf dem Server anschaue ist alles korrekt, daher poste ich den teil nicht).
Hier der Part mit dem header (Methode der Klasse):
PHP-Code:
function CSVErstellen() {
$str_Content = implode($this->str_Zeilentrenner,$this->arr_Zeilen);
if(!empty($this->str_Dateiname)) {
$file = fopen($this->str_Dateiname, "w");
fputs($file,$str_Content);
fclose($file);
if($this->bool_HeaderSenden) {
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$this->str_Dateiname\"");
}
} else
return $this->str_Content;
}
VIELEN DANK!
strauberry
Kommentar