gpt4 book ai didi

java - 在 Vaadin 中打开指向文件的链接

转载 作者:行者123 更新时间:2023-11-28 22:44:27 25 4
gpt4 key购买 nike

我正在尝试使用以下代码在 Vaadin 的新窗口中打开指向文件的链接:

getWindow().open(new ExternalResource("./uploads/file.png"), "_blank");

我将文件存储在/uploads/下的 webapp 文件夹中,托管在 Tomcat 服务器上。但是当我单击触发上述代码的按钮时,会打开一个新窗口,其中包含前一个窗口的内容和指向该文件的 URL,但不会触发文件下载。

如何在新窗口中打开下载链接?

最佳答案

首先,您的意思是“../uploads/file.png”吗? (即 Web 应用程序外部的资源。)

您正在使用 ExternalResource ,这基本上意味着您正在浏览器中打开一个 URL。 URL“./uploads/file.png”指向应用程序,您会看到相同的窗口。

相反,您可以使用 FileResource让 Vaadin 应用程序为文件提供服务。在这种情况下,我建议不要使用相对路径,因为它们可能因部署服务器而异。

如果您想直接使用Tomcat在相同的网络应用程序上下文中提供文件,您应该在web.xml 中定义“./uploads”执行< strong>not 映射回您的应用程序。

确保这一点的最简单方法是将 Vaadin 应用程序放在“/application/*”(或类似)路径下。中间没有 FileResource,这是更有效的方法。缺点是应用程序 URI 发生变化并且对用户可见。

关于java - 在 Vaadin 中打开指向文件的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com