2012-06-07 106 views
0

我正在使用Perl/CGI,MySQL,Perl模板工具包。提供可下載的文件perl-template

我有一個數據庫設置和一些Perl模塊來查詢數據庫。

從perl模塊中,我將數據結構(散列哈希)傳遞給perl模板工具包(.tt),並將結果呈現在網頁上。

我現在想添加一個選項,將搜索結果下載到製表符分隔的文件中;即提供下載文件選項。我在我的perl模塊中有一個子例程來轉換爲製表符分隔格式。我希望能夠調用該子例程 將搜索結果轉換爲製表符分隔格式。我可以在模板工具包中的perl模塊中調用子例程嗎?

我想弄清楚如何生成一個可下載的文件,而無需再次查詢數據庫或將結果存儲在CACHE中。

有沒有辦法將Perl模板正在呈現的數據結構(散列哈希)傳遞給一個可以生成可下載文件的Javascript(進一步調用子例程)?

請提出正確的方法。

感謝您的時間

回答

3

我可以打電話從模板工具包Perl模塊的子程序?

You can,但它對這個問題沒有意義。

您不需要任何模板功能,而且您確實需要不同的Content-Type標頭。創建標籤分隔文件時不要使用TT。

我想弄清楚如何生成一個可下載的文件,而無需再次查詢數據庫或不將結果存儲在CACHE中。

沒有合理的方法來做到這一點。您可以得到的最接近的數據是從JavaScript生成的(通過TT)HTML文檔中解析數據(不是使用您編寫的Perl來生成製表符分隔的文件),然後使用build the tab separated file on the client, and make it available for download

再次點擊數據庫會更簡單,更簡單,更可靠。

+0

每次創建頁面並提供下載鏈接時,另一種方法是保存CSV文件(我們稱之爲)。如果用戶實際使用它取決於他。文件需要一段時間清理一次,並且個別用戶的文件必須單獨命名,以免互相覆蓋。 – simbabque