【问题标题】:GWT: Why won't Chrome & IE download file, where Firefox will?GWT:为什么 Chrome 和 IE 不能下载文件,而 Firefox 会在哪里下载?
【发布时间】:2011-06-17 04:51:09
【问题描述】:

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

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

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

Firefox:按预期下载每个文件(在新选项卡中打开图像/xml 或提示保存对话框)

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

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

我做错了什么?谢谢

【问题讨论】:

  • +1 对我正在工作的项目有同样的痛苦。

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


【解决方案1】:

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

我的预感是它会变成一个 mime 类型的问题,但如果没有看到更多正在发生的事情,很难确定。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      希望这对您有所帮助。内容配置的东西似乎是让 IE 变得公平的东西,但缓存的东西在我看来只是从磁盘拉文件时的做法。

      祝你修复成功!

      【讨论】:

      • 我刚刚在 Win 7 上运行的 TC6 中尝试过这个,它可以在 IE8、FF3.6 和 Chrome (v?) 上运行。在所有三个中,我都在尝试一个 .psd 文件,因为我认为浏览器不会以任何方式正确解释它。 .Zip 以完全相同的方式在所有浏览器中工作。你在运行 Xorty 的什么版本?
      • 也许看看你的 tomcat/conf 目录,看看你是否有安装时预装的 mimetypes 列表。我刚刚检查过,并且 .psd 文件类型从至少 4.1 版的 tomcat 中作为默认 mimetype 出现在 tomcat/conf/web.xml 中,但在此之前我不确定,所以您可能正在尝试的其他 mime 很可能会丢失从配置。很抱歉给这个帖子发垃圾邮件,但我很快就要下班了,所以我想尽可能简洁地说明我已经知道的内容。 ;)
      • 我现在不能这样做,但我明天会尝试并在这里报告:) 太感谢了
      • 刚刚尝试在我的web.xml 中注释掉psd 的mime 类型,结果仍然不是您所体验的。 IE 将文件作为 unicode 直接输出到浏览器中,而 chrome 和 FF 似乎完美正常,正在下载文件。
      • 感谢您的努力,但部分正确答案提供了 Ilia(解决了 Chrome)。至于 IE,我只是不知道...... ATM 不是那么重要。还是谢谢。
      【解决方案4】:

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

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

      【讨论】:

      • 嗯,.NET 代码看起来与 Tomcat 中的 Wicket 代码完全不同。相同的矿山类型,相同的文件类型,但不同的浏览器结果,所以发生了一些不同的事情。如果我发现的不仅仅是解决方法,我会更新这个答案。
      【解决方案5】:

      服务器是否运行 SSL?

      IE 对下载它交给第三方应用程序(zip、pdf、doc、xls 等)的内容有一些奇怪的限制。我们采取了在我们的响应中排除特定的无缓存标头和取消选中 IE 中的“不要将加密的页面保存到磁盘”的组合。微软的印象是这是一个“功能”。以下是讨论该问题的一些相关链接:

      微软知识库:323308 和 815313

      stackoverflow:1262147

      Windows Live:Blog

      Atlassian:Jira issue

      【讨论】:

        猜你喜欢
        • 2012-08-29
        • 2016-05-11
        • 1970-01-01
        • 1970-01-01
        • 2020-08-10
        • 2019-02-11
        • 1970-01-01
        • 1970-01-01
        • 2017-08-22
        相关资源
        最近更新 更多