Datei erstellen und direkt senden

emptynick

Erfahrenes Mitglied
Hallo,

mal wieder ein Problem von mir ;-)
Und zwar erstelle ich eine Datei in einem Cache Ordner.
Danach schreibe ich dort Daten rein und will diese gecachte Datei direkt an den User senden.

So sieht es bei mir momentan aus:
PHP:
	$file = 'cache/'.md5(uniqid("", true)).'.csv';
	touch($file);
	$handle = fopen($file, 'w');
	fwrite($handle, "Test\r\nTest");
	fclose($handle);
	header('Content-type: application/force-download');
	header('Content-Transfer-Encoding: Binary');
	header('Content-length: '.filesize($file));
	header('Content-disposition: attachment; filename='.$file);

Funktioniert ja so weit auch ganz gut.
Wenn jetzt nur noch der Inhalt in der Datei wäre.
Rufe ich die Datei direkt vom Server auf, steht der Inhalt natürlich drinne.

Hat da jemand eine Idee, das zu lösen?
Denn eine Datei ohne Inhalt kann ja jeder machen ;)

Vielen Dank und LG
emptynick
 
Du musst die Daten gar nicht erst in einer Datei zwischenspeichern sondern kannst sie direkt an den Client senden. Gib sie dazu einfach aus.
 
Du hast eigentlich schon alles Notwendige genannt.
PHP:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=Textdatei.txt');
echo 'Dateiinhalt';
exit;
 
Danke, das funktioniert schon mal prima.
Aber wie funktioniert das dann mit einem Zeilenumbruch?
\n und/oder \r in sämtlichen Konstellationen funktioniert leider nicht.
 
Du hast eigentlich schon alles Notwendige genannt.
PHP:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=Textdatei.txt');
echo 'Dateiinhalt';
exit;

Hallo! Bin gerade dabei an Dateiausgaben zu basteln, wenn ich deine Methode verwende bekomm ich leider wieder Junkdata:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">



<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<meta name="description" content="description"/>
<meta name="keywords" content="keywords"/> 
<meta name="author" content="author"/> 
<link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
<title>Titel</title>
</head>

<body>

<div class="container">

	<div class="navigation">

		<div class="title">
			<h1>Titel</h1>
		</div>		
		<a href="admin.php">Admin Center</a>		
		<a href="../index.php">Shop</a>
		<div class="clearer"><span></span></div>

	</div>

	<div class="holder_top"></div>

	<div class="holder">
	
		
		Dateiinhalt

Wie bekomm ich diesen ersten Teil weg?
 
Sorry wegen Doppelpost, wollte deswegen keinen neuen Thread aufmachen, bin aber kein Stückchen weiter gekommen. Wäre nett wenn mir jemand helfen könnte :)

Edit:

Hab einen ob_end_clean(); vornedran gehauen, klappt nun!
 
Zuletzt bearbeitet:
Zurück