【问题标题】:The right way of generating pdf, xls, png files in webappwebapp中生成pdf、xls、png文件的正确方法
【发布时间】:2023-03-19 03:10:01
【问题描述】:

我必须根据 Web 应用程序的输入生成一些各种文件类型(excel、pdf、png)的报告。该应用程序是在 apache 网络服务器上用 PHP 编写的。

ATM,当用户访问报告部分时,他们会触发检查数据库中是否有提交的新数据的事件,并根据该信息生成新的报告文件。这使用户要等到文件生成(3-10 秒),这根本不是一个好方法,所以我需要你能给我的任何建议。

【问题讨论】:

  • 您现在用什么来创建这些报告。如果花费的时间太长,那么要确定任何加快速度的方法,我们需要知道您正在使用哪些工具/库
  • @Mark Ba​​ker:我正在使用 PHPExcel 生成我的 xls 文件。我刚刚看到生成 cvs 文件是多么容易,我正在考虑使用更便宜的方法。
  • @Nicolas: 编辑我的问题 :)
  • 如果您对 PHPExcel 的速度有特定的问题,那么请查看 PHPExcel 论坛上的一些性能建议......在不知道您的代码结构的情况下,很难给出具体的建议

标签: php excel pdf-generation file-generation


【解决方案1】:

当然,这实际上取决于您的应用程序和系统,但通常我所做的是我有一个 cron 作业,它执行 PHP 脚本以定期生成报告。输出可以保存到文件系统或数据库中。这样我的报告只生成一次(而不是每次用户尝试下载它们)并且它们只在需要时生成(您的脚本可以检查它是否需要根据您拥有的任何更改标准生成报告,或者您可以只需将其设置为定期生成全新的报告)。为了简单起见,只需使用 wget 或 curl 调用您当前的网页,然后在您的网络服务器上创建一个新页面以下载保存的报告。

这种方法的唯一问题是用户可能会下载“陈旧”的报告(数据已更改但报告尚未更新)。如果这确实是一个问题,另一种方法是让 PHP 脚本在后台运行,检查修改的数据并根据需要生成报告。

另一种方法是,您可以在用户尝试下载报告时继续生成报告,但缓存结果。再次使用您自己的特定于应用程序的标准,您将检查缓存的报告是否足以立即下载,或者生成新报告并缓存它。您甚至可以通过定期生成新报告将其与第一种方法结合使用,但如果用户尝试下载过期的报告,则立即生成新报告(让用户等待 3-10 秒)。

这最终取决于您的系统和您的应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 2020-07-12
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多