我需要将CSV文件写入PHP输出缓冲区,然后在完成写入后将该文件下载到客户端计算机。(我原本想在服务器上编写并下载它,但事实证明我在生产服务器上没有写入权限)。
我有以下PHP脚本:
$basic_info = fopen("php://output", 'w');
$basic_header = array(HEADER_ITEMS_IN_HERE);
@fputcsv($basic_info, $basic_header);
while($user_row = $get_users_stmt->fetch(PDO::FETCH_ASSOC)) {
@fputcsv($basic_info, $user_row);
}
@fclose($basic_info);
header('Content-Description: File Transfer');
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=test.csv');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize("php://output"));
ob_clean();
flush();
readfile("php://output");
我不确定该怎么做。CSV文件下载了,但是没有显示任何内容。我猜这可能与我的ob_clean()和flush()命令的顺序有关,但我不确定最好的排序方式是什么。
感谢任何帮助。
mail()
。 - Halcyon