在 PHP 中生成用于下载和重定向的文件
在 Web 应用程序中,经常需要在服务器上生成文件并提示用户下载他们。 PHP 提供了一种使用标头来实现此目的的简单方法。不过,您也可能会遇到文件生成并显示下载提示后需要将用户重定向到新页面的场景。
文件下载后重定向的挑战
您提供的代码片段成功设置了强制 CSV 下载所需的标头。但是,在末尾添加重定向标头 ("header("Location: /newpage")") 将无法按预期工作。这是因为回显内容时标头已经发送,并且在内容完全发送到浏览器之前无法执行后续操作(例如重定向)。
替代方法
建议不要在下载提示后重定向,而是将用户重定向到“最终”页面,在该页面中可以通知他们下载已成功启动。最后一页可以向用户提供一条消息,例如“您的下载应该自动开始。如果没有,请单击此处下载。”
自动启动下载
到重定向到最终页面后自动启动下载,您可以使用以下技术:
实现示例
这是一个如何重定向用户并自动启动下载的示例:
header('Content-Type: application/csv'); header("Content-length: " . filesize($NewFile)); header('Content-Disposition: attachment; filename="' . $FileName . '"'); echo $content; // Set a redirect header to the final page header("Location: /final-page.php"); exit();
<!-- final-page.php --> Your download should start automatically. If not, click <a href="create_csv.php">here</a> to download.
此方法允许您将用户重定向到另一个页面并确保立即启动文件下载,无需手动干预.
以上是如何在 PHP 中下载文件后重定向用户?的详细内容。更多信息请关注PHP中文网其他相关文章!