2011-01-28 71 views
6

我在Tomcat webapp文件夾中有一些二進制文件,我希望用戶下載。GWT:爲什麼Chrome和IE下載文件,Firefox會在哪裏?

我有下面的代碼:Window.open(GWT.getHostPageBaseURL()+result, "_blank", "");

我GWT.log路徑檢查,這是正確的 - 這的確表明具有特定文件到文件夾。

火狐:下載每一個預期的文件(無論是在新標籤頁中打開圖像/ XML或提示保存對話框)

鉻:似乎是從我的嘗試只.ZIP下載。其他人被忽略,沒有任何反應。

IE8:在新IE窗口中打開圖像/ XML。其他人被忽略(f.e ZIP閃爍新窗口,但不會提示保存對話框)

我在做什麼錯?謝謝

+0

+1對我工作的項目有同樣的痛苦。 – Nilesh 2011-03-11 07:07:24

回答

2

根據this discussion來自GWT組的問題鉻可以阻止由javascript(或GWT中的回調函數)生成的彈出窗口,但允許在用戶交互結果(或GWT中的按鈕單擊)時打開新窗口。

4

我建議使用像Fiddler這樣的工具通過更詳細地檢查HTTP請求和響應來診斷這個問題。

我的預感會變成一個啞劇式的問題,但很難說沒有看到更多的事情。

0

兩天前剛剛遇到一個非常類似的情況與IIS。根本原因是IE設置,其中禁止自動提示下載文件。 (火狐瀏覽器工作正常)

雖然這是一個IE的工作,我還沒有找到一個好的永久解決方案。我知道這是可能的,因爲我們有一個Tomcat應用程序,它沒有IE的這個問題。

+0

然後竊取一些代碼:D – Xorty 2011-01-28 14:01:08

+0

那麼.NET代碼看起來與Tomcat中的Wicket代碼非常不同。相同的礦井類型,相同的文件類型,但不同的瀏覽器結果,所以發生了不同的事情。如果我發現更多的工作,我會更新這個答案。 – jzd 2011-01-28 14:04:41

0

服務器是否運行SSL?

IE在下載內容時存在一些奇怪的限制,它將它交給第三方應用程序(zip,pdf,doc,xls等)。我們採取了在我們的響應中排除特定的no-cache標頭的組合,並取消選中IE中的「不要將加密的頁面保存到磁盤」。微軟覺得這是一個「功能」。下面是討論這個問題的一些相關鏈接:

微軟KB:323308815313

計算器:1262147

的Windows Live:Blog

Atlassian的:Jira issue

+0

它沒有運行SSL :( – Xorty 2011-03-10 09:58:04

2

我最近建立的東西我們的組織更像一個用於IE的緩存攔截器,而不是其他任何東西。

如果你可以檢查你的輸出腳本中有以下的,至少某處: -

response.setHeader("Pragma", "public"); 
response.setHeader("Cache-Control", "max-age=0"); 
response.setHeader("Content-Disposition", "attachment; filename=\"" + yourfilenamehere + "\""); 

希望這是一些幫助呢。內容處置的東西似乎是剝離IE公平的東西,但緩存的東西在我看來只是從磁盤中拉出文件時的做法。

祝你好運!

相關問題