Hallo, ich schon wieder.
Kurz als Einleitung, was ich mit PHP in diesem Fall tue, und das auch soweit funktionert.
1. Ich gebe einen Text in ein Textfeld ein.
2. Ich öffne per Klick ein Popup. Der Text aus der Textarea wird als JS-Variable an die URL geheftet á la window.open('popup.php?text=DasisteinText'), natürlich escaped bzw. urlencoded.
3. Im Popup wird der an die URL geheftete Text per GET ausgelesen und in das Popup geschrieben.
4. Der Text wird parallel beim Öffnen des Popups in eine txt-Datei auf dem Server gespeichert:
Da in der URL kein ?download=1 mitgeben wurde, führt er richtigerweise den Code des else-Zweiges aus. Die Datei ist damit nun auf dem Server vorhanden.
Jetzt gebe ich einen Link darunter an, der so aussieht:
Bei Klick wird die GET-Var download mitgegeben und der if-Zweig ausgeführt, womit die gespeicherte Datei eigentlich heruntergeladen werden soll.
Wenn ich den Link klicke, wird zwar das Download-Fenster geöffnet, aber in der Datei steht dann nur "Download", also quasi nur den Wert des echo's auf dem if-Zweig. Es sollte aber der Inhalt der Datei gedownloaded werden.
Was ist daran falsch?
Grüße
Kurz als Einleitung, was ich mit PHP in diesem Fall tue, und das auch soweit funktionert.
1. Ich gebe einen Text in ein Textfeld ein.
2. Ich öffne per Klick ein Popup. Der Text aus der Textarea wird als JS-Variable an die URL geheftet á la window.open('popup.php?text=DasisteinText'), natürlich escaped bzw. urlencoded.
3. Im Popup wird der an die URL geheftete Text per GET ausgelesen und in das Popup geschrieben.
4. Der Text wird parallel beim Öffnen des Popups in eine txt-Datei auf dem Server gespeichert:
PHP-Code:
<?
if($_GET['download']) {
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename=' . $_GET['filename']);
readfile($file);
echo "Download";
} elseif(!isset($_GET['download'])) {
$textvar = $_GET['text'];
$textvarbr = nl2br($_GET['text']);
$dateiname = strtotime("now").".txt";
$ordner = "datatext/";
$file = $ordner.$dateiname;
$fp = fopen ($file, "a+");
fwrite ($fp , $textvar);
fclose ($fp);
echo "Schreiben";
}
?>
Jetzt gebe ich einen Link darunter an, der so aussieht:
PHP-Code:
<?
echo '<a href="'.$_SERVER['PHP_SELF'].'?filename='.basename($file).'&download=1">Den gespeicherten Text downloaden</a>';
?>
Wenn ich den Link klicke, wird zwar das Download-Fenster geöffnet, aber in der Datei steht dann nur "Download", also quasi nur den Wert des echo's auf dem if-Zweig. Es sollte aber der Inhalt der Datei gedownloaded werden.
Was ist daran falsch?
Grüße
Kommentar