繁体   English   中英

创建Excel文件后的PHPExcel重定向页面

[英]PHPExcel Redirect Page After Creating Excel File

我想知道在使用PHPExcel创建文件后如何重定向页面。 创建的文件可以,但是不能重定向到另一个页面。 以下是一些代码。

$excel -> setActiveSheetIndex(0);
$_SESSION["information"] = "Motor Line Checking Completed.";
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment;filename='".$report_name.".xlsx'");
header("Cache-Control: max-age=0");
$writer = PHPExcel_IOFactory::createWriter($excel, "Excel2007");
$writer -> save('php://output');
exit;
header("Location: ".$_SERVER["HTTP_HOST"]."/../../");
exit;

笔记:

  • 如果我删除exit; save(); ,xlsx文件将被损坏。
  • 如果我移动header("Location:..."); save();之前save(); ,它将重定向但不会创建xlsx。
  • 我也尝试使用javascript进行重定向。

我想要的是创建xlsx并在之后重定向页面。

我想出了一个解决方案,只需在重定向页面上提供一个链接。 在该页面上,我可以为该链接创建触发器,以仅自动下载文件。

在创建文件的页面上:

$writer = PHPExcel_IOFactory::createWriter($excel, "Excel2007");
$metaDatas = stream_get_meta_data(tmpfile());
$tmpFilename = $metaDatas['uri'];
$writer -> save($tmpFilename);
$newfile = "../outbox/".$report_name."_".substr(date("Y"), -2).date("mdhis").".xlsx";
rename($tmpFilename, $newfile);
$tmpary = explode("/", $newfile);
$_SESSION["download"] = $tmpary[count($tmpary) - 1];
$_SESSION["information"] = "File Creation Completed.";

从重定向页面:

<?php
if(isset($_SESSION["information"])) {
    echo $_SESSION["information"];
    if(isset($_SESSION["download"])) {
?>
    <a href="outbox/<?php echo $_SESSION["download"]; ?>">
        <button class="download" type="button">Click here to download <?php echo $_SESSION["download"]; ?> file.</button>
    </a>
<?php
    }
    session_unset();
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM