2015-04-29 73 views
2

簡單的問題,我已經得到了頁面加載生成的pdf,隨後我想讓用戶下載文件。如何讓用戶在訪問jsp頁面後立即下載pdf文件?

有沒有辦法做到這一點?在pdf創建後顯示下載對話框?

我已經試過這樣:

<%response.setHeader("Content-Disposition", "attachment; filename=\""+filename+"\"");%> 

但我在哪裏定義,我想用戶要下載的文件?因爲上面的代碼導致用戶下載一些損壞的空pdf文件。

+0

必須是可能的......你可以顯示你的頁面和PDF代的代碼? –

+0

我知道這是可能的,但我應該怎麼做呢?生成pdf的代碼在這裏不是必需的,因爲它已成功創建。現在我只需要讓用戶下載它。 –

+0

設置此標題後,您需要將pdf內容發送到瀏覽器。我認爲在你的頁面中有一個隱藏的iframe會更容易,它指向一個輸出這個頭文件和pdf內容的腳本。否則,用戶在下載文件之後會看到空白頁。 –

回答

1

我建議你用Servlet而不是JSP來做到這一點。您對代碼有更多的控制權,並且它不那麼脆弱(如果您在JSP中處理響應內容,並且腳本之間甚至有單個空格或換行符,則可以將其寫入輸出流 ,從而破壞文件內容) 。

所以看看這FileServlet example並適應您的需求。

+0

是的,解決了它,我不知道JSP不能這樣做。 :) –

+0

你也可以用JSP來做,但它很醜。 – Bogdan