2010-09-12 30 views
0

我有一個perl腳本,它在從命令行運行時生成一個具有特定格式的數據的文本文件以供其他應用程序使用。腳本還在stderr上打印信息警告消息。我正在爲此寫一個Web前端。在用戶點擊關聯表單上的「提交」的理想世界中,頁面將顯示在包含信息性消息的瀏覽器中,並且同時彈出窗口將允許用戶將數據的文本文件保存到磁盤。我希望這可以在沒有啓用JavaScript的瀏覽器上工作,所以我認爲我想要的東西可能是不可能的。如何從網頁中分別返回文本文件和錯誤日誌

我見過的一些網站通過在網頁上顯示信息性消息,以及鏈接來處理這種事情。這似乎意味着必須存儲文件並整理某種安全性,以便其他用戶無法下載文件(而不是這對於所涉及的應用程序來說是一件大事)。

我想知道是否有一個更優雅的方式來處理這個問題?例如,是否可以使用多段消息以某種方式實現一次返回兩條信息?是否有可能彈出第二個窗口與信息消息,而不使用JavaScript?道歉,如果這些看起來像基本問題 - 我的編程知識是在DNA序列操作算法的領域,而不是網頁生成..

+0

也許把可下載的文件放在一個iframe裏面可以工作。 – LatinSuD 2010-09-12 14:27:25

回答

0

如果(且只有)數據是快速和容易產生,做一次爲錯誤消息和第二次下載。錯誤消息頁面的鏈接或按鈕將重新生成結果並提示下載。

這是一個黑客,因爲如果在用戶點擊下載鏈接之前底層數據發生變化,您需要考慮該怎麼做。小心正確地設置頭文件下載與正常的網頁,例如,

if($submit) { 
    print header(-type=>'application/octet-stream', 
     -Content_disposition=>'attachment; filename=foobar.dat'); 
    Gen_Results(); 
} 

說實話,我只用一點點的JavaScript無論如何,因爲這是一個非常安全的假設現在是一個天。否則,請使用「noscript」標籤作爲替代選項。