2011-04-04 66 views
2

我有一個基於用戶輸入生成docx文件的應用程序。它使用Apache POI來生成docx文件,我可以從中獲取FileOutputStream,當我將它寫入文件時,文檔在本地計算機上完美打開。生成並將docx文件返回給客戶端

webapp正在使用Dojo xhrPost將必要的數據發送到服務器以生成文檔。我想知道的是如何讓docx文件到客戶端。

我知道我可以做的是創建一個臨時文件並將該文件的位置傳遞給客戶端進行下載,但我認爲有辦法通過將FileOutputStream直接輸送到客戶端來完成該操作會更清潔。

有什麼建議嗎?

回答

0

從閃亮先生在這太問題的答案有一個例子流的Excel文件,應該是一個DOCX很相似:

How can I get an Input Stream from HSSFWorkbook Object

除了一個DOCX內容類型應該,可能,是應用程序/vnd.ms-word

+0

謝謝。似乎是我至少做了這一點,我的問題似乎在於我如何處理JavaScript方面的響應。因爲它是我可以看到作爲一堆二進制文件的響應,但它沒有做任何事情。將發佈一個新的問題,因爲它似乎是一個不同的問題。可能是一個Dojo問題。 – zclark 2011-04-04 23:56:39

+0

@zclark。我認爲你的主要問題將與xhr請求有關。你不能在xhr請求流中,這是一個常見的ajax陷阱。您最好的選擇是創建一個隱藏的iframe,並將iframe源設置爲您的docx流腳本。這_will_提示用戶下載/保存流 – Ben 2011-04-05 00:41:06

+0

非常感謝。我使用了iframe選項,它在dojo中只是dojo.io.frame.send(選項)。唯一遇到的問題是獲取iframe來解決問題,如果iframe下載了iframe,並且我想要啓動另一個iframe.cancel,那麼我最終會使用iframe.cancel。 – zclark 2011-04-05 01:57:58

相關問題