これが私がやろうとしていることです。コンマ区切りのテキスト ファイルとしてダウンロードできるようにしたい一連のレポートがあります。ファイルを作成するのではなく、単に結果をエコーアウトすると人々が言うページをたくさん読んだことがありますが、それを試してみると、彼らがいるページに出力されるだけです。
私はこれを各レポートの形で持っています
Export File<input type="checkbox" name="export" value="1" />
そのため、投稿で、ファイルをエクスポートしようとしているかどうかを確認できます。もしそうなら、私はこれをやろうとしていました:
if($_POST['export'] == '1')
{
$filename = date("Instructors by DOB - ".$month) . '.txt';
$content = "";
# Titlte of the CSV
$content = "Name,Address,City,State,Zip,DOB\n";
for($i=0;$i<count($instructors);$i++)
$content .= ""; //fill content
fwrite($filename, $content);
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
readfile($filename);
}
基本的にページは更新されますが、ダウンロードのためにファイルがプッシュされることはありません。誰かが私が欠けているものを指摘できますか?
編集 私は完全に明確ではなかったと思います。これは、ファイルを作成してダウンロードするだけのページではなく、レポートも表示しているページです。したがって、exit(); を置くと、readfile の後、残りのページは空白でロードされます。このページにもレポートを表示する必要があります。このページは既にヘッダー情報を送信しているため、ダウンロードされない理由にも関係があると思います。