2012-04-09 23 views
0

我目前正在從文檔管理系統獲取數據庫中的BLOB並顯示文檔(通常是pdf,但這不應該)。我的代碼用於打開文檔,但是在打開後保存文件時,它會保存爲URL.pdf。因此,如果頁面的URL來獲取文件是:使用JSP或Javascript更改URL

get.jsp?doc=1 

然後將文檔從數據庫中加載,顯示給用戶就好了。

但是,如果您嘗試保存文件,默認名稱爲

get.pdf 

來了,我想它是實際的文件名,存儲在數據庫中。我想我必須更改網址才能這樣做,但是我可以以不同的方式工作,只要文檔可以保留用戶可能不知道的名稱即可。我正在使用JSP。提前致謝。

+0

發佈您的代碼plz – ControlAltDel 2012-04-09 19:57:19

回答

0

您可以在響應對象的操作中執行此操作。只需將「NAME_THE_FILE_HERE」替換爲您想要命名的文件即可。

 httpServletResponse.setContentType("application/pdf"); 
     httpServletResponse.setHeader("Content-Disposition" , "attachment; filename=" + "NAME_THE_FILE_HERE"); 
+0

作爲附件工作,但我想用它內聯。附件強制下載對話框。我希望用戶查看該文件,然後可以選擇使用Adobe的插件保存該文件。 – Renegade91127 2012-04-09 20:11:06

+0

也許我誤解了你所要求的內容。只需將「附件」更改爲「內聯」,即可保留「; filename =」參數。 httpServletResponse.setHeader(「Content-Disposition」,「inline ; filename =「+」NAME_THE_FILE_HERE「); – 2012-04-09 20:19:06

+0

這就是我如何設置。這個問題出現了,因爲在內聯使用時,Adobe似乎無法識別文件名。當您使用adobe保存PDF時,它將其保存爲URL name.pdf。我希望它打開,但我想讓Adobe保存原來的名稱。我想,爲了做到這一點,我需要將網址更改爲虛擬網址,但實際上並不存在,但只有一個Adobe會讀取並獲取正確的文件。 – Renegade91127 2012-04-09 20:23:04