【问题标题】:provide a downloadable file perl-template提供可下载的文件 perl-template
【发布时间】:2012-06-11 05:29:12
【问题描述】:

我正在使用 Perl/CGI、MySQL、Perl 模板工具包。

我有一个数据库设置和一些 perl 模块来查询数据库。

从 perl 模块中,我将数据结构(哈希散列)传递给 perl 模板工具包 (.tt),然后将结果呈现在网页上。

我现在想添加一个选项,将搜索结果下载到制表符分隔的文件中;即提供下载文件选项。我的 perl 模块中有一个子例程来转换为制表符分隔格式。我希望能够调用该子例程 将搜索结果转换为制表符分隔格式。我可以从 Template toolkit 中的 perl 模块调用子例程吗?

我试图弄清楚如何在不再次查询数据库或不将结果存储在 CACHE 中的情况下生成可下载文件。

有没有办法将 Perl 模板正在呈现的数据结构(哈希哈希)传递给 Javascript(进一步调用子例程),然后可以生成可下载的文件?

请提出正确的方法。

感谢您的宝贵时间

【问题讨论】:

    标签: javascript perl cgi template-toolkit


    【解决方案1】:

    我可以从模板工具包中的 perl 模块调用子例程吗?

    You can,但是对于这个问题没有意义。

    您不需要任何模板功能,但您确实需要不同的 Content-Type 标头。在创建制表符分隔文件时不要使用 TT。

    我试图弄清楚如何在不再次查询数据库或不将结果存储在 CACHE 中的情况下生成可下载文件。

    没有合理的方法可以做到这一点。您可以得到的最接近的方法是使用 JavaScript(不使用您编写的 Perl 来生成制表符分隔文件)从生成的(通过 TT)HTML 文档中解析数据,然后是 build the tab separated file on the client, and make it available for download

    再次访问数据库会更简单、更容易、更可靠。

    【讨论】:

    • 另一种方法是在每次创建页面时保存 CSV 文件(我们称之为)并提供下载链接。如果用户实际使用它取决于他。文件需要不时清理一次,并且必须单独命名各个用户的文件,以免它们相互覆盖。
    猜你喜欢
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 2017-09-22
    • 2013-03-25
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多