我希望用户被迫下载文件,然后被重定向到另一个页面。有更多的代码,但在调试此问题时,我已将所有内容减少到以下代码段(假设已定义$ link):
ob_start();
header("Refresh: 0; URL=".$link);
header("Content-Disposition: attachment; filename='test.doc'");
ob_end_flush();
exit;
这适用于Firefox,但不适用于Chrome。如果我注释掉内容处置标头,则重定向工作将在Chrome中生效。截至目前,这使Chrome强制下载,但它不会执行重定向。在Firefox中,强制下载,页面重定向。这是期望的效果。我尝试使用和不使用ob_start / ob_end_flush语句来执行此操作。我尝试过使用die()而不是exit。我为相同的头语句尝试了不同的语法。
不幸的是,使用标题(“Location:$ link”)不适用于这种情况,因为它不允许执行下载。这在Firefox和Chrome中都是如此。
我希望我失踪的是愚蠢的东西。但任何见解都会受到高度赞赏。
如果我能就这个问题做出澄清,请告诉我。