无法从 API 下载 Angular 7 中的 blob 作为文件

Unable to download blob as file in Angular 7 from API

我在应用程序中下载文件时遇到了一些问题。为了下载文件,我在 API 中进行了一次新调用,我正在使用它来将数据导入应用程序。我已经使用 Postman 对此 API 进行了测试,它似乎确实有效,因为我能够通过调用下载文件。

不幸的是,我 运行 在将其实施到我的 Angular 应用程序时遇到了一些问题。当我调用下面的函数时,我得到一个 'corrupt' 文件,因为它无法打开。我已经检查了与我的问题相关的其他 questions/solutions,但在尝试了其中的大部分之后,我没有进一步了解。

我的服务电话:

DownloadFile (companyId: string, fileId: string, extension: string, fileName: string): Observable<Blob> {
   const options = { responseType: 'blob' as 'json' }
   return this.http.get<Blob>(this.baseApiUrl + this.baseTag + "?companyId=" + companyId + "&fileId=" + fileId + "&extension=" + extension + "&fileName=" + fileName, options)
 }

使用服务调用:

this.data.DownloadFile(this.company.id, selectedItem.id, this.getFileNameWithoutExtension(selectedItem.fileName), this.getExtensionFromFileName(selectedItem.fileName))
    .subscribe(resultBlob => 
      {
        //Success
        console.log('start download:', resultBlob);
        var blob = new Blob([resultBlob], { type: "application/pdf" } );
        saveAs(blob, selectedItem.fileName);
      },
    error => {
      //Error
      console.log(error);
    });

我没有发现我的这部分代码有什么问题。

DownloadFile()中的参数是:

companyId, fileId, extension, fileName 

但是当您调用该服务时,您似乎已将文件名和扩展名参数翻转为:

companyId, fileId, fileName, extension

容易犯的错误。 :)