2012-08-10 24 views
14

Im sử dụng một nút để chỉ đạo cho một kịch bản mà tạo ra một tập tin văn bản:Viết một tập tin văn bản và lực lượng tải với php

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

sau đó tôi muốn trình duyệt web để đề nghị tải về hoặc mở tập tin này Tôi nên làm như thế nào? Cảm ơn

+0

thấy http://php.net/manual/en/function.readfile.php – yent

+0

thể trùng lặp của [file Force tải xuống trong php] (http://stackoverflow.com/questions/3718962/force-file-download-in-php) –

Trả lời

30

sử dụng readfile()application/octet-stream tiêu đề

<?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 Tôi đã thử nó hoạt động nhưng nếu tôi muốn trình duyệt web đề xuất tải xuống 2 tệp thì nên Tôi làm? – stevey

+1

bạn không thể bắt buộc tải xuống 2 tệp, trừ khi bạn gọi chúng riêng biệt với một trang khác ... với iframe! –

+0

Nó là cần thiết cho tôi để thay đổi xử lý của tôi: $ handle = fopen ("php: // output", "w"); Ngoài ra, có vẻ như fwrite không ghi đè bất cứ thứ gì, vì vậy tôi phải gọi ob_end_clean() – Ghoti

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

nên làm việc

Các vấn đề liên quan