【发布时间】:2018-05-07 08:35:49
【问题描述】:
我有一个 PDF 导出文件,需要一段时间才能创建 PDF。我希望用户能够单击导出链接并立即显示下载对话框。这样他们就可以开始下载并等待它完成。不要点击链接,而是等待生成,然后再次等待下载。
这是一个非常简单的 PHP 示例:
<?php
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename=test.pdf');
flush();
// time consuming PDF creation happens here
sleep(15);
echo 'pdf contents would be here';
想法是发送适当的标题,将它们flush()到浏览器,慢慢创建PDF,最后发送到浏览器。
这在 chrome 中完美运行。下载对话框立即弹出,睡眠是下载等待时间的一部分。
在 Firefox 和 InternetExplorer 中,这不起作用。这些浏览器会等待整整 15 秒,然后才会显示下载对话框。
任何想法如何使下载对话框立即弹出将不胜感激。
【问题讨论】:
标签: php http internet-explorer firefox download