2012-08-10 10 views
14

Im eine Taste zu einem Script zu lenken, die eine Textdatei erstellt:Schreiben Sie eine Textdatei und Kraft zum Download mit php

<?php 
$handle = fopen("file.txt", "w"); 
fwrite($handle, "text1....."); 
fclose($handle); 
?> 

nach, dass ich die Web-Browser diese Datei schlagen herunterladen oder öffnen möchten Wie soll ich tun? Dank

+0

http://php.net/manual/en/function.readfile.php sehen – yent

+0

möglich Duplikat [Force-Datei download in php] (http://stackoverflow.com/questions/3718962/force-file-download-in-php) –

Antwort

30

Verwendung readfile() und application/octet-stream Header

<?php 
    $handle = fopen("file.txt", "w"); 
    fwrite($handle, "text1....."); 
    fclose($handle); 

    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.basename('file.txt')); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize('file.txt')); 
    readfile('file.txt'); 
    exit; 
?> 
+0

Thx Ich habe es versucht funktioniert aber wenn ich möchte der Web-Browser vorschlagen, 2 Dateien herunterladen, wie sollte Ich mache? – stevey

+1

Sie können nicht zwingen, 2 Dateien herunterzuladen, es sei denn, Sie rufen sie separat von einer anderen Seite ... mit iframes! –

+0

Es war notwendig für mich, mein Handle zu ändern: $ handle = fopen ("php: // output", "w"); Außerdem schien es, dass fwrite nichts überschrieb, also musste ich ob_end_clean() rufen – Ghoti

1
$content = file_get_contents ($filename); 
header ('Content-Type: application/octet-stream'); 
echo $content; 

Sollte funktionieren

Verwandte Themen