GWT:为什么Chrome和& IE下载文件,Firefox会在哪里?

时间:2011-01-28 11:43:43

标签: java internet-explorer firefox gwt google-chrome

我在Tomcat webapp文件夹中有一些二进制文件,我希望用户下载。

我有以下代码:Window.open(GWT.getHostPageBaseURL()+result, "_blank", "");

我检查了GWT.log路径,这是正确的 - 它确实指向具有特定文件的文件夹。

Firefox:按预期下载每个文件(在新标签页中打开图片/ xml或提示保存对话框)

Chrome:似乎只是从我尝试过的.zip下载。其他人被忽略,没有任何反应。

IE8:在新的IE窗口中打开图像/ XML。其他被忽略(例如ZIP闪烁新窗口,但不会提示保存对话框)

我做错了什么?感谢

5 个答案:

答案 0 :(得分:4)

我建议使用Fiddler之类的工具通过更详细地检查HTTP请求和响应来诊断此问题。

我的预感是它会成为一个哑剧型的问题,但如果没有看到更多正在发生的事情,很难说肯定。

答案 1 :(得分:2)

我最近为我们的组织构建了一些东西,作为与IE一起使用的缓存破坏者而不是其他任何东西。

如果您可以检查输出脚本中是否包含以下内容,至少在某处: -

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

希望这对你有所帮助。内容处理似乎是剥离IE公平的东西,但是当从磁盘中提取文件时,缓存的只是我的意见。

祝你好运!

答案 2 :(得分:2)

根据GWT-group的this discussion问题,chrome可能会阻止javascript(或GWT中的回调)生成的弹出窗口,但如果是用户交互的结果(或按钮点击,则允许打开新窗口) GWT)。

答案 3 :(得分:0)

两天前用IIS遇到了一个非常类似的案例。根本原因是IE设置,其中禁用了自动提示下载文件。 (Firefox运行良好)

虽然这是IE的解决方案,但我还没有找到一个好的永久解决方案。我知道这是可能的,因为我们有一个Tomcat应用程序,IE没有这个问题。

答案 4 :(得分:0)

服务器是否正在运行SSL?

IE在下载内容方面有一些奇怪的限制,它将内容传递给第三方应用程序(zip,pdf,doc,xls等)。我们已经在我们的响应中使用了排除特定no-cache标头的组合,并在IE中取消选中“不要将加密的页面保存到磁盘”。微软认为这是一个“功能”。以下是一些讨论该问题的相关链接:

Microsoft KB:323308815313

stackoverflow:1262147

Windows Live:Blog

Atlassian:Jira issue