这就是我想要做的。我有一系列报告,他们也希望能够以逗号分隔的文本文件的形式下载。我已经阅读了很多页面,人们说只是简单地回显结果而不是创建文件,但是当我尝试它只是输出到他们所在的页面时。
我在每份报告中都有这个
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(); 在读取文件之后,页面的其余部分加载为空白。我还需要在此页面上显示报告。我认为这也可能与为什么它不下载有关,因为这个页面已经发送了标题信息。