Link öffnen, um die Datei in Vaadin
Ich versuche um einen link zu öffnen, um eine Datei in einem neuen Fenster in Vaadin mit dem folgenden code:
getWindow().open(new ExternalResource("./uploads/file.png"), "_blank");
Habe ich die gespeicherte Datei in den webapp-Ordner unter /uploads/, gehostet auf einem Tomcat-server. Aber wenn ich auf die Taste auslöst, die obigen code wird ein neues Fenster geöffnet mit dem vorherigen Fenster den Inhalt und mit einer URL auf die Datei, aber kein Datei-download ausgelöst wird.
Wie öffne ich einen link für den Download in einem neuen Fenster?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst bist du einfach nur bedeuten "../uploads/Datei.png"? (d.h. eine Ressource außerhalb der web-Anwendung.)
Sind Sie mit der ExternalResource, was im Grunde bedeutet, dass Sie das öffnen einer URL im browser. Die URL "./uploads/Datei.png" Punkte zu Rücken, um die Anwendung und sehen Sie das gleiche Fenster.
Stattdessen konnte man mit FileResource zu lassen, die Vaadin-Anwendung die Datei. In diesem Fall, ich schlage vor, nicht um relative Pfade verwenden, wie Sie können variieren, je nach dem deployment server.
Wenn Sie möchten, um die Datei direkt der Verwendung von Tomcat - in der gleichen web-Anwendung Kontext Sie sollten definieren, in der web.xml dass die "./uploads" tut nicht Karte zurück zu Ihrer Anwendung.
Ist die einfachste Art, dies sicherzustellen, besteht darin, die Vaadin-Anwendung unter "/application/*" (oder ähnliches) Weg. Ohne FileResource in der Mitte, das ist effizienter Ansatz. Nachteil ist, dass die Anwendung URI ändert, und das ist sichtbar für den Benutzer.