Thread Download-Datei on-the-fly erzeugen (2 answers)
Opened by Der-Niko at 2004-08-13 16:55

Der-Niko
 2004-08-13 16:55
#3456 #3456
User since
2004-08-13
4 Artikel
BenutzerIn
[default_avatar]
Hi Folks,

ich möchte auf einer WebSite Daten aus einer mySQL-Datenbank direkt zum Download anbieten, ohne diese zuvor in einer Datei abzuspeichern. Nachfolgender Code funktioniert browserübergreifend :) Allerdings wird der Zeilenumbruch in den CSV-Daten auf Windows-Rechnern nicht sauber dargestellt ??? Sämtliche Daten erscheinen in einer Zeile; statt eines Zeilenumbruchs erscheinen kleine Rechtecke. Auch ein Test mit "\n\r" brachte keine Besserung. Wo liegt der Fehler? Die Daten werden scheinbar im binary-Modus und nicht im ascii-Modus übertragen, obwohl im Header ascii als Content-Transfer-Encoding deklariert wurde. "Content-Transfer-Encoding: Quoted printable" funktioniert auch nicht :(

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$MeineDaten = "Zeile 1\nZeile2\n";
$DownloadFile = "on-the-fly.csv";

$Header = "Content-Type: text/x-csv\n";
$Header .= "Content-Transfer-Encoding: ascii\n";
$Header .= "Expires: Mon, 26 Jul 2004 05:00:00 GMT\n";
if($ENV{HTTP_USER_AGENT} =~ /MSIE/) {
$Header .= "Content-Disposition: inline\; filename=$DownloadFile\n";
$Header .= "Cache-Control: must-revalidate, post-check=0, pre-check=0\n";
$Header .= "Pragma: public\n\n";
}
else {
$Header .= "Content-Disposition: attachment\; filename=$DownloadFile\n";
$Header .= "Pragma: no-cache\n\n";
}

print $Header.$MeineDaten;

Ciao,
Der-Niko

View full thread Download-Datei on-the-fly erzeugen