Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 浏览器中的文件下载进度:5_Angular_User Interface_Angular5 - Fatal编程技术网

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

Angular 浏览器中的文件下载进度:5,angular,user-interface,angular5,Angular,User Interface,Angular5,我正在创建一个使用RESTAPI下载文件的应用程序。当您点击该文件时,api会立即返回该文件。因此,我使用以下逻辑来获取文件: downloadFile(file) { this.service.downloadFile(file.id).subscribe((fileData) => { const a = document.createElement('a'); document.body.appendChild(a); const blob = new Blob([d

我正在创建一个使用RESTAPI下载文件的应用程序。当您点击该文件时,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。

Suresh Kumar Ariya,我们知道文件的总大小。我们如何获得进度值。您是如何做到这一点的?