2

我目前正在用 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");

在页面的开头,并且

ob_end_flush();

最后,但仍然没有运气。

有任何想法吗?

Tnx 提前!!!

4

2 回答 2

3

不要window.open用于打开弹出窗口。如果您在主窗口中调用您的 URL 并且它是一个下载(它是,这要归功于您的header()调用),您的浏览器将是智能的,并且将窗口中的现有页面/数据保持不变。因此,不需要弹出窗口。

于 2011-04-22T06:22:44.770 回答
2

您可能想要做的是改用它:

location.href = URL_OF_THE_MAKEOUTPUT.PHP_FILE_GOES_HERE;

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

于 2011-04-22T06:24:52.720 回答