FileDownloader - 依赖于浏览器的不同行为

时间:2017-12-13 13:37:13

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

一开始,我尝试描述上下文。我有一个按钮,点击返回文件,包含相关日期的数据。单击按钮时,我将查询(带有日期from-to)发送到DB并将数据解析为正确的格式,并以StreamResource的形式返回FileDownloader。所有课程均来自Vaadin个包。

    Button btExport = new Button("Export");
    FileDownloader fileDownloader = new FileDownloader(getReportsStream());
    fileDownloader.extend(btExport);
    //update resource to download on click 
    btExport.addClickListener(event -> {
        fileDownloader.setFileDownloadResource(getReportsStream());
    });

在Chrome和IE浏览器中一切正常。在Mozilla中,Firefox不是。在Firefox浏览器中,始终返回旧的StreamResource对象。总是返回相同的文件,它看起来像Firefox从那种缓存,因为在日志中我没有找到事件点击Firefox,任何行动。在Chrome和IE中存在日志。

所有浏览器都是最新的。 Vaadin版本:7.7.6

你知道为什么会这样吗?或者也许我可以用不同的方式来实现下载文件?

编辑///

我找到了解决方案,但我不知道它是否是暂时的。重新安装浏览器后,不再出现奇怪的行为。如果它能在几天内正常工作,我将把它作为解决方案。

1 个答案:

答案 0 :(得分:0)

首先我在安装Firefox 57之后在Firefox 49上进行测试,但没有任何变化。只有当我清理缓存并且每个仍然保持它看起来它的工作原理。我检查另一台计算机并在第57版上工作,在版本49上没有工作。

结论是拥有最新的浏览器并确保卸载旧版本的浏览器并进行清理。