代码之家  ›  专栏  ›  技术社区  ›  Alexandru Pupsa

如何在Angular中以流的形式从http.get调用下载文件?

  •  0
  • Alexandru Pupsa  · 技术社区  · 6 年前

    我正在从一个asp.net webapi下载一个文件。API返回 FileStreamResult 立即,无需等待从azure存储接收整个文件。

    现在我用这个角度代码来获取文件:

    downloadFile(fileId, fileName) {
    this.http.get(Endpoints.fileUploadEndpoint + '/' + fileId, {
      responseType: 'blob'
    }).subscribe(blob => {
      var link = document.createElement('a');
      link.href = window.URL.createObjectURL(blob);
      link.download = fileName;
      link.click();
    });
    

    它可以工作,但它会等待在后台下载整个文件,然后继续 subscribe 当它在浏览器中下载到用户可以看到的地方时,就停止了。我也需要一种从用户的角度自动开始下载的方式。

    我的意思是在浏览器中开始下载并显示进度和一切。

    0 回复  |  直到 6 年前