簡體   English   中英

Vaadin FileDownloader:手動開始下載

[英]Vaadin FileDownloader: start download manually

我正在構建一個項目,該項目將從不同的URL下載多個PDF文件,將它們合並為一個文件並下載。

我正在嘗試使用Vaadin的FileDownloader來實現這一點:

final FileDownloader fileDownloader = new FileDownloader(new FileResource(resultResource.getFile()));
fileDownloader.extend(download);

resultResource是我要下載的生成的PDF。

現在的問題是生成PDF需要很短的時間,因此有時下載是在生成新文件之前進行的,導致下載了舊文件或空文件。

所以我一直想做的是這樣的:

download.addClickListener(e -> {
    try {
        // This creates the new PDF 
        pdfConverter.manipulatePdf(storeNumber.getValue());

        fileDownloader.download();

    } catch (...) {
        ...
    } 
});

但是到目前為止沒有任何成功。 有什么辦法可以這樣嗎? 要禁用“自動”下載並手動觸發它?

您可以嘗試兩種方法

第一種方法是重構UI,以便在進入視圖時開始生成PDF文件,完成后便啟用下載按鈕。 如果可行,您還可以使用進度條之類的其他指標。

在Vaadin 8.4+中,您還可以通過擴展EventTrigger(請參見拉取請求https://github.com/vaadin/framework/pull/10478 )和API規范https://vaadin.com/download/release/8.4/8.4來設置FileDownloader。 .2 / docs / api / com / vaadin / server / EventTrigger.html如果第一種方法不適用於您,則可能會被利用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM