angular - 浏览器中文件下载进度 : Angular 5

标签 angular user-interface angular5

我正在创建一个使用 REST API 来下载文件的应用程序。当你点击它时,api 会立即返回文件。所以我使用以下逻辑来获取文件:

downloadFile(file) {
  this.service.downloadFile(file.id).subscribe((fileData) => {
  const a = document.createElement('a');
  document.body.appendChild(a);
  const blob = new Blob([data], { type: data.type });
  const url = window.URL.createObjectURL(blob);
  a.href = url;
  a.download = file.name;
  a.click();
  window.URL.revokeObjectURL(url);
  });
}

以上代码完美运行。但是,当整个文件下载完成时,它会在浏览器中下载文件,也就是说,您不会在浏览器中看到文件下载的进度(我们通常在 Chrome 中下载文件时通常会看到这种情况)。您可以在控制台的“网络”选项卡中看到它正在下载文件,但仅在下载整个文件时才会显示。任何人都可以告诉我如何强制它在浏览器中下载以显示进度吗?

最佳答案

要实现此解决方案,我们需要 API 中的总文件大小值。您还需要使用支持进度条事件的 HTTPClientModule。

关于angular - 浏览器中文件下载进度 : Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179636/

相关文章:

javascript - 测试 AngularFireAuth Wrapper,不使用 AngularFireAuth 模拟

angular - 从订阅 typescript 返回值

Java Lanterna - 如何从文本框中获取输入?

javascript - 更改 getElementsByClassName 的样式会导致编译错误

javascript - 在 Angular 5 中的导出模态之间导航?

angular5 - 升级到 Angular 5 时,文件 'src/app/app.component.spec.ts' 不是 Typescript 项目的一部分

angular - Ionic 3 导入自定义组件

Angular 2 - 异常 : Expression 'ngClassUntouched has changed after it was checked

javascript - 使用 JavaScript 小部件时如何减少页面回流?

iOS 图形界面刷新