Download nach schreiben in txt Datei.

StefanR

Erfahrenes Mitglied
Hallo ich habe da eine Sache in meinem Script, wo ich absolut keinen Plan habe, wie ich das lösen kann und zwar wollte ich in einem Script von mir eine Textdatei erstellen, dieses downloaden und nach dem das geschehen ist, soll das File welches da entstanden ist wieder gelöscht werden.

Wie kann ich das am Besten handhaben, habe absolut keinen denkansatz. Habe mir vielleicht auch gedacht, dass txt File zu zippen, da es ja ansonsten ausgegeben wird, aber ich weiß nicht ob das schwer ist. :)
 
du brauchst die generierte datei ja nicht speicher, sondern kannst sie gleich nach dem generieren senden (sendest den richtigen header und haust den dateiinhalt raus)... so sparst du dir auch das löschen... wär das was ? :)
 
Hallo,

ja aber wie soll ich das denn machen, dass ich die Datei nicht speicher, wenn ich die Datei erstelle, ist sie ja quasi gespeichert.

Habe mir zwar schon überlegt, dass ich ja mit tmpfile() eine Textdatei erstelle, aber wie mache ich das am Günstigsten, weil ich kann ja bei der Funktion leider keine Parameter übergeben, dass es zum Beispiel eine Textdatei werden soll.
 
der ansatz war schon gut. Du baust einfach dein Scrtip wo die inhalte der txt datei ganz easy per echo ausgegeben werden. Wenn man dann das Script aufruft, stehen die Daten einfach auf der Seite ... soweit so klar?

Jetzt musst du nur mittels header() den richtigen Header an den Browser senden, dann wird diese Seite nicht geöffnet, sondern es öffnet sich der Download dialog, wo du dann ganz normal die Datei speichern kannst. So brauchst du die Datei nicht speichern ... auch nicht mit tmpfile() o.Ä.

Aber bitte frag mich nicht wie der Header auszusehen hat. Ich hab kein plan .. lässt sich aber durch googlen herausfinden
 
Probier das mal aus:
PHP:
<?php
  header("Content-type: application/txt");
  header("Content-Disposition: attachment; filename=tolleneuedatei.txt");
  echo "Das ist der Dateiinhalt";
?>

mfg, snuu
 
Hallo,

danke erstmal, für eure Hilfe, habe das jetzt anders gelöst (oder besser habe es vor), ich schreibe jetzt die Datei, zippe die denn und lasse sie runterladen und danach wird die "temp"datei wieder gelöscht.

Nur leider habe ich da jetzt wieder ein Problem und zwar, dass Skript, schreibt den Inhalt einer Variable nicht in die Datei, nur wenn ich fputs in der while Schleife ausführe, wenn ich das in der while mache, habe ich aber das Problem, dass ich keine If Abfrage mache kann, die prüft ob das schreiben TRUE zurückgibt, weil das ja denn so oft TRUE ergibt, wie die Schleife durchlaufen wird.

Hier mal das Skript.
PHP:
$i=1;
	$fp=fopen("text.txt", "w+"); 
 		
 	while($row_art=mysql_fetch_array($query_art) or die(mysql_error())){
 	//Ausgabe zum Artikel
	$back="
	-----------------------------------------------------------------------\n
							Artikel ".$i++."\n
							Zeitstempel ".$row_art['article_tstamp']."
	----------------------------------------------------------------------\n
	Artikel ID: 		".$row_art['article_id']."\n
	Artikel Titel:		".$row_art['article_title']."\n
	Artikel Untertitel	".$row_art['article_subtitle']."\n
	Artickel Summary	".$row_art['article_summary']."\n
	";
	
	$fpu=fputs($fp, $back);
	} // while ARTIKEL
?>
Und hier die Lösung die ich mir eigentlich gedacht habe, aber wo er nichts in die Datei schreibt.
PHP:
$i=1;
	$fp=fopen("text.txt", "w+"); 
 		
 	while($row_art=mysql_fetch_array($query_art) or die(mysql_error())){
 	//Ausgabe zum Artikel
	$back="
	-----------------------------------------------------------------------\n
							Artikel ".$i++."\n
							Zeitstempel ".$row_art['article_tstamp']."
	----------------------------------------------------------------------\n
	Artikel ID: 		".$row_art['article_id']."\n
	Artikel Titel:		".$row_art['article_title']."\n
	Artikel Untertitel	".$row_art['article_subtitle']."\n
	Artickel Summary	".$row_art['article_summary']."\n
	";
	
	} // while ARTIKEL
$fpu=fputs($fp, $back);	
if (TRUE == $fpu) {
	    echo "Hallo";
	}

?>
 
Zurück