发送标题后关闭网页(php)

时间:2011-04-22 06:15:09

标签: php javascript phpexcel

我目前正在用PHP完成一个网页。

基本上有一些数据需要输出到Excel文件。 所以在google之后找到了这个PHPExcel项目,并使用它来输出数据。这很完美。

现在,当所述数据输出准确时我使用window.open(URL_OF_THE_MAKEOUTPUT.PHP_FILE_GOES_HERE) javascript函数,因此保存数据的当前窗口是完整的。现在,我想在生成excel文件时关闭第二个窗口并开始下载到客户端计算机。

所以,到目前为止,我知道这段代码存在问题

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=report-'.date('d.m.Y').'.xls');

贝塞尔,我不能这样做后 - >

echo "<script>window.close;</script>";

我尝试使用

ob_start("callback");

在页面的thery开头,

ob_end_flush();

最后,但仍然没有运气。

有什么想法吗?

提前Tnx !!!

2 个答案:

答案 0 :(得分:3)

请勿使用window.open打开弹出窗口。如果你在主窗口中调用你的URL并且它是一个下载(感谢你的header()电话),你的浏览器将是智能的,并保持窗口中现有的页面/数据完好无损。所以,不需要弹出窗口。

答案 1 :(得分:2)

您可能想要做的是改用:

location.href = URL_OF_THE_MAKEOUTPUT.PHP_FILE_GOES_HERE;

它将重定向到下载脚本,因为它是文件附件,它不会离开当前页面,而是从浏览器显示“下载文件”对话框。