Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
temporäre Textdatei erzeugen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
temporäre Textdatei erzeugen


 
stun
17-01-2005, 21:46 
 
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

 
stun
17-01-2005, 21:59 
 
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

 
stun
17-01-2005, 22:17 
 
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?

 
derHund
17-01-2005, 22:27 
 
dann brauchst du nur den entsprechenden header und die ausgabe an den browser senden, ohne vorher eine datei zu erstellen.

header

 
stun
17-01-2005, 22:50 
 
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 !!!

 
stun
17-01-2005, 22:59 
 
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:34 Uhr.