2016-08-15 2 views
-2
<?php 
$file = fopen("testing.txt","w"); 
$txt = "Who let the dogs out?! \r\n"; 
echo fwrite($file, $txt); 

header("Cache-Control: private"); 
header("Content-Description: File Transfer"); 
header("Content-Disposition: attachment; filename=$file.txt"); 
header("Content-Type: text/plain; "); 
header("Content-Transfer-Encoding: binary"); 

readfile('testing.txt'); 
?> 

Erste Ausgabe: las ich auf der PHP-Website (http://php.net/manual/en/function.fopen.php), dass es Probleme könnten mit line- enden, aber wenn testing.txt hat heruntergeladen und geöffnet wird, erscheint die folgende Zeile mit einigen vor hinzugefügt Zahlen:PHP Textdatei hat Zahlen vor, wenn der Name + unerwartete Datei heruntergeladen

25Who let the dogs out?!

Zweite Ausgabe: mir die Dateinamen bemerkt i s Resource id #3.txt anstelle von testing.txt. Eine Google-Suche zeigt, dass diese Fehlermeldung häufig mit MySQL/PHP zusammenhängt, aber für meinen Fall ist es nur PHP.

+1

statt 'Echo fwrite ($ file, $ txt); 'schreibe einfach' fwrite ($ file, $ txt); 'und' header ("Content-Disposition: Anhang; Dateiname = $ filename.txt"); ' –

+0

auch, y Sie verwenden '$ file' für den Dateinamen, das ist eine Dateiressource und wie erwartet erhalten Sie die Zeichenfolgendarstellung als Dateiname. –

Antwort

1

Ich denke, es liegt daran, dass Sie diese Zeile im Code haben

echo fwrite($file, $txt); 

diesen Code Versuchen

fwrite($file, $txt); 

und korrigieren diese

$filename = 'testing.txt'; 
header("Content-Disposition: attachment; filename=$filename.txt"); 
+0

Okay, das ist peinlich für mich. Ich kann nicht glauben, dass die Lösung so einfach ist (ich dachte, dass es etwas mit CR zu tun hat)! Auch habe ich * gerade * bemerkt, dass ich fclose() aus Versehen weggelassen habe. – taylorswiftfan

Verwandte Themen