[英]Download large files using REST API and browser's download manager
我們在 Angular 前端應用程序中遇到了一個小問題——我們的客戶想要下載報告。 生成報告后,我們將使用具有關鍵標頭的 GET 端點,例如access-control-expose-headers: content-disposition
和content-disposition: attachment; filename=TasksReport-28-10-2022.xlsx; filename*=UTF-8''Report.xlsx
content-disposition: attachment; filename=TasksReport-28-10-2022.xlsx; filename*=UTF-8''Report.xlsx
content-disposition: attachment; filename=TasksReport-28-10-2022.xlsx; filename*=UTF-8''Report.xlsx
。 該部分工作正常,正在下載文件。 當文件較大(~150MB)時問題就開始了,我們必須等待響應。 我為此使用了忙碌指示器,但客戶希望像“常規文件”一樣下載 - 所以希望在瀏覽器的下載管理器中看到完整的進度。
我們正在考慮直接向文件提供 URI,但我認為這不是最好的方法,對吧? 我們如何設置 API 或 UI 來實現這一點? 感謝您的幫助,如果需要更多信息,我很樂意編輯問題並提供。
Google Drive 到以下方式:
downloadURI(uri: string, name: string) {
var link = document.createElement('a');
link.download = 'name';
link.href = uri;
link.setAttribute('target', '_blank');
link.click();
link.remove();
}
第二種方式:您可以在獲取請求中使用reportProgress
選項
this.httpClient.get<any>(environment.backendUrl + '/your-path', {
observe: 'events',
reportProgress: true,
})
...
所以你可以建立你的一個下載進度 window 等等。
問候,弗洛里安
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.