我有一个HTML表单,通过POST将其数据提交到服务器页面:
<form id='report-inputs' method='post' action='generate.php'>...</form>
generate.php
对其给定的数据做了大量工作,最终转出Excel文件进行下载。它通过清理缓冲区并设置标题来完成此操作:
ob_end_clean();
header('Set-Cookie: fileDownloadToken='.$token);
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$_DATA['title'].'.xlsx"');
$objWriter->save('php://output');
没有ob_end_clean()
文件下载为损坏。我希望在页面完成处理时显示某种确认或某些内容,但需要注意的是,在使用ob_end_clean()
进行渲染之前,任何页面输出都会被清除。
如何显示某些内容并成功发送文件?
感谢。
答案 0 :(得分:1)
将数据保存到文件中,在屏幕上显示您想要的任何内容,并将Javascript重定向添加到您保存的文件中。
答案 1 :(得分:1)
正如@ mike-b已经说过的那样,你不能同时做两件事。但这是可以做的事情。