我有一個JSP頁面需要接受一些信息到一個表單,說表單提交到同一個頁面,並帶有額外的「Thanks for ______」div只有在表單提交之後才能放置(使用參數檢查)。在HTML表單提交後提供一個文件「另存爲」對話框
但是,我還需要在服務器上提供一個文件供下載,但是我不能混淆頭文件的content-disposition來處理文件,因爲整個jsp頁面仍然需要顯示。我怎樣才能提供這個文件,而不會使表單提交到不同的頁面?我可以用什麼JavaScript技巧打開一個可以做到這一點的新窗口? Javascript會沒事的,但沒有什麼彈出式窗口攔截器將王牌..
我不能使用一個href發送文件 - 它必須自動完成。
此外,如果在新窗口中打開該文件(這是一個pdf),那也可以。
你使用了哪些內容處置?我試圖在同一個目錄中提供一個文件。這裏是serveFile.jsp:<%String filename =「myPDF.pdf」; response.setHeader(「Content-disposition」, 「attachment; filename =」+ filename);「%>瀏覽器像你說的一樣保留在第一頁上,但頁面是空白的,除了」Thank you「div (下載的文件似乎已被破壞,但這完全是另一個問題。)對不起,這個表單在我按下Enter鍵時會彈出「save edits」按鈕。 – Amalgovinus 2010-09-21 19:52:20
所以,事實證明我只需要在文檔底部的腳本中引用location.href行就可以了,這看起來像是正確的答案,下載的文件仍然因爲我在做setHeader而中斷,但這是一個單獨的問題。 – Amalgovinus 2010-09-21 20:07:17
@Rujiel這個處理頭對我來說很不錯,你可能需要的只是文件名的引號,另外,你確定你把內容類型設置爲「application/pdf」 ?之後寫字節到輸出流你確定你叫'flush()'?並且爲了記錄,我不是金神(但是感謝恭維!:D),我喜歡幫助別人解決我以前遇到的問題。乾杯:) – 2010-09-21 21:00:20