PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei zum Download zurückliefern


Skyman
04.11.2004, 16:49:14
Hallo Leute,

...was macht man, wenn man den Wald vor lauter Bäumen wieder nicht sieht?
Richtig, man fragt!

Hier meine sehr bescheidene Frage:
Eine PHP Datei wird aufgerufen, diese stellt diverse Angaben zusammen und soll als Ergebnis nichts am Bildschirm anzeigen, sondern eine Datei zurückliefern.
Also, Button drücken, PHP Script wird aufgerufen, rödel..rödel..rödel und auf meinem Bildschirm erscheint das bekannte graue Downloadfenster von Windows mit der netten Frage was ich mit der Datei anstellen will (Öffnen, download, details,...)

Wie bewerkstellige ich das nun das Daten so übermittelt werden?
Ich denke mal das ich alles in eine Date speichern muß, so als wenn ich eine Datei auf dem Webserver schreiben will.
aber wie öffne bzw. schreibe ich jetzt eine Datei, die dann zum User geschickt wird?

Ich denke ihr versteht meine Frage schon, mir fällt nix mehr dazu ein oder ich finde wieder die Stelle nicht wo ich nachlesen muß... :-(

Danke im Vorraus.

Gruß, Skyman

c4
04.11.2004, 16:51:57
Du willst also einfach nur den Inhalt der Datei im Browser ausgegeben bekommen? echo join('', file('datei.txt'));

// Ab PHP 5
echo file_get_contents('datei.txt');

Skyman
04.11.2004, 17:01:56
Hey,

ne, ich glaube da denkst du in die falsche Richtung, nicht den Inhalt einer Datei, da habe ich mich wohl falsch ausgedrückt oder verstehe ich dich jetzt falsch?

Sagen wir es so:
alles was ich normal auf den Bildschirm ausgeben würde steht in der Varaiblen $inhalt.
Diese Variable will ich dann aber als Datei (z.B. test.txt) zum User schicken, der bekommt ohne Bildschirmänderung einfach das Downloadfenster von MS angezeigt, das er nur noch bestätigen muß.

Ganz so, als wenn man auf einen Link zum Download von irgendwelchen Dateien klickt, nur das halt vorher ein PHP Script die Daten zusammengestellt hat.

Ein gutes Beispiel habe ich auch gerade gefunden:
Ihr kennt doch phpmyadmin für SQL Datenbanken?
Wenn man dort eine Datensicherung (DataDump) macht, dann bekommt man so eine Textdatei zurückgeliefert, so etwas suche ich auch.

Gruß
skyman

xabbuh
04.11.2004, 17:13:28
<?php
$var = 'irgendwas'; // $var enthält einfach alles, was später in der Datei stehen soll, die der User runterlädt

header('Content-Type: x-type/octtype'); // möglich, dass du hier auch text/plain wählen kannst
header('Content-Length: ' . strlen($var));
header('Content-Disposition: attachment; filename="test.txt"');

print $var;
?>

Skyman
04.11.2004, 17:33:48
Hmh,

das sieht doch schon vorzüglich aus, besten Dank. ;-)

Ich werde das gleich mal ausprobieren.
Dann geht es doch anders als ich dachte, aber eigentlich auch eine einfache Lösung.

Also Danke erstmal...

Gruß
Skyman

xabbuh
04.11.2004, 17:42:33
Original geschrieben von Skyman
Ich werde das gleich mal ausprobieren.
Dann geht es doch anders als ich dachte, aber eigentlich auch eine einfache Lösung.
An was hattest du denn gedacht?

Skyman
04.11.2004, 17:58:03
Ich hab schon ausprobiert, funzt genau wie erwartet.


Nein, ich dachte es müßte so gemacht werden, als wenn man eine Date schreibt, also mit fopen und write und so...

Aber war ja klar:
Die header geben ja an was und wohin gesendet wird...


Danke jedenfalls!