2012-03-19 5 views
0

基本的に、ユーザーは一部のデータをtxtファイルにエクスポートします。そのtxtファイルは自動的にダウンロードされます。ダウンロードは正常に動作しており、必要なデータが表示されています。しかし、実際のページのHTMLは最後に追加されていますか?PHPを使用してtxtファイルを強制的にダウンロードするには、HTMLを含む

$fh = fopen($filename, 'w'); 
fwrite($fh, $data); 
fclose($fh); 

header('Content-disposition: attachment; filename='.$filename); 
header('Content-type: text/plain'); 
readfile($filename); 
+3

実際のページは何ですか?単一のHTTPレスポンスで2つのファイル(ダウンロードとHTMLドキュメント)を提供しようとしていますか?あなたはそれをすることはできません、HTTPはそれのように動作しません。 – Quentin

+0

ありがとう!それは明らかに問題です。それは、他のページがページとダウンロードを同時に提供しているかのように「行動する」ことに気付いたことです。 –

+0

HTMLを出力するダウンロードスクリプトがある場合は、それらを分離する必要があります。ダウンロードスクリプトは、ダウンロードするデータ以外は何も出力しません。ダウンロードが開始できなかった場合はエラーメッセージが表示されます。 – GordonM

答えて

3

HTMLは上記のコードの後に​​存在する場合、あなたはreadfile($filename)exitによいでしょうか?

+1

ありがとうございました。 readfile()の後にexitを追加したところ、完全に機能しました。私は出口がページを完全に殺すという印象を受けました。 –

+1

それはページを強制終了しますが、自動クリーンアップ関数とオブジェクトデストラクタを最初に実行させるのでうまくいきますが、問題がコメントに記載されているように、ダウンロードファイルとHTMLページを提供することはできませんそれと同時に、あなたがそのように見える何かを見たときは、それはちょうどふりをしています。通常、HTMLページがダウンロードされ、ページが読み込まれるとダウンロードが開始されます。これは、実際に配信されているページを実際には変更しません。 – Jason

関連する問題