2011-05-06 104 views
0

我正在尋找一種解決方案(設計),通過該解決方案我可以在客戶端獲取壓縮文件。 i)用戶將點擊一個鏈接。 ii)這將觸發服務器發送並在客戶端保存(或保存在內存中)兩個文件(現在,我不知道該怎麼做,甚至可能)。 3)在客戶端壓縮文件,然後在下載對話框中顯示給客戶端進行下載。在客戶端獲取壓縮文件

任何建議我怎麼能做到這一點?有沒有可以做到這一點的JavaScript/ajax庫?

(我有服務器端的Perl)

回答

1

的文件需要在服務器上進行拉上。在客戶端壓縮它們意味着您必須首先將它們無壓縮地下載並在這之後下載它們,因爲壓縮文件將不在客戶端而不在服務器上,因爲這將不可能或者沒有任何意義。

我不是Perl方面的專家,但您應該至少可以使用shell命令壓縮文件,雖然我很確定Perl有內置支持或至少有一個插件。生成zip後,只需爲響應設置正確的Content-Type標題並打印出文件。

編輯:經過進一步調查,我糾正了「不可能」部分。似乎有一個名爲JSZip的庫,它從服務器下載文件,然後將它們壓縮到客戶端上。你可能想看看它是否適合你。

+0

謝謝你的回覆。但這正是我想完成的,由於某些原因。我不想在服務器上的zip。我知道這沒有多大意義。我的目標不是壓縮文件,而是將其作爲單個壓縮文件提供給客戶端。 「......在此之後下載它們將不可能......」 - 如果是這種情況,我將不得不放棄這種方法並回到壓縮服務器的方式。 – 2011-05-06 07:04:01

+0

@ TJ-:我可能不得不收回「不可能」部分。請參閱編輯。 – Kaivosukeltaja 2011-05-06 07:15:13

+0

哇。這次真是萬分感謝。但我認爲,我仍然有問題。該庫期望文件在磁盤上。但是,我只能在內存中存儲文件(作爲對來自客戶端的http請求的響應,我必須弄清楚如何做到這一點 - 從單個請求中獲取多個文件)。除非客戶批准,否則我將無法在磁盤上存儲文件。 – 2011-05-06 07:29:40

相關問題