Moin!
Ich würde gerne ähnlich wie bei einem Backup über Phpmyadmin ein temporäres Textfile erzeugen. Es wird über ein Script der Inhalt einer Tabelle in einen String geschrieben. Dieser soll dann im Textfile enthalten sein welches dem User dann als Download zur verfügung steht.
Wie muss ich vorgehen?
gruß,
stun
penizillin
17-01-2005, 21:52
fopen, wfrite, fclose, header
hm verzeihung, ich bin mit den file-functionen noch nicht sehr vertraut.
Ich dachte immer ich muss bei fopen eine datei angeben, bzw es wird eine angelegt. oder kann ich das durch einen Modus regeln?
firstlord18
17-01-2005, 22:15
ja, durch modi lassen sich autopmatisch dateien erstellen, falls nicht vorhanden. dafür müssen natürlich schreibrechte verfügbar sein............a+, w+, etc
hm ja aber ich möchte halt nicht dass eine datei länger exisitiert als für den download benötigt. nachdem sie gesendet wurde soll sie wieder gelöscht werden. wie ist das dann zu handhaben?
dann brauchst du nur den entsprechenden header und die ausgabe an den browser senden, ohne vorher eine datei zu erstellen.
header
hmm also ich bin jetzt soweit:
// $csv ist der verwendete string
...
$handle = fopen("csv/liste.csv", "w+");
fwrite($handle,$csv);
fclose($handle);
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=downloadliste.csv");
readfile('csv/liste.csv');
das funktioniert alles gut, jedoch bleibt die datei im filesystem existent. was muss ich also tun um das zu verhindern?
(sorry die fragerei aber ich steh aufm schlauch)
penizillin
17-01-2005, 22:54
wie derhund bereits sagte, brauchst du die daten nicht vorher in eine date zu schreiben.
firstlord18
17-01-2005, 22:57
wenn dus trotzdem so mcahst, dann bitte per unlink() die Datei wieder löschen !!!
ich wusste nicht wie ich csv dann ausgeben soll... echo war mein freund :rolleyes:
danke für eure hilfe!
MelloPie
17-01-2005, 23:01
tmpfile
tmpfile -- Legt eine temporäre Datei an
is evt die bessere wahl