2011-01-28 74 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公平的东西,但缓存的东西在我看来只是从磁盘中拉出文件时的做法。

祝你好运!

相关问题