В моем Vaadin Flow веб-приложении (версия 14 или более поздняя) я хочу предоставить своему пользователю ссылку, которая загрузит для него файл данных. Имя файла по умолчанию для загрузки должно быть определено в тот момент, когда пользователь начинает загрузку.
Мне известен виджет Anchor
в Vaadin Flow. При Anchor
именем загруженного файла по умолчанию будет имя ресурса, указанное в URL-адресе ссылки. К сожалению, это определяется, когда страница загружается, а не позже, когда пользователь нажимает на ссылку. Таким образом, этот подход не соответствует моей потребности обозначить загрузку датой и временем, зафиксированным в момент, когда пользователь инициирует загрузку.
String when = Instant.now().toString().replace( "-" , "" ).replace( ":" , "" ); // Use "basic" version of standard ISO 8601 format for date-time.
StreamResource streamResource = new StreamResource( "rows_" + when + ".txt" , ( ) -> this.makeContent() );
Anchor anchor = new Anchor( streamResource , "Download generated data" );
Возможно, решением было бы использование виджета Button
вместо Anchor
. Использование кнопки для динамически создаваемого контента показано в руководстве на странице Advanced Topics > Dynami c Content . К сожалению, пример загружает ресурс на странице, а не выполняет загрузку для пользователя.
➥ Можно ли использовать Button
в Vaadin Flow для инициации загрузки?
➥ есть какой-то другой подход к инициированию загрузки с помощью URL-адреса, определенного, когда пользователь инициирует загрузку, а не при загрузке страницы?