如何使用.net和angular 7下载文件

时间:2019-05-24 15:27:25

标签: c# angular asp.net-core

我的服务器上有不同的文件,我尝试下载其中一些文件。 它具有不同的名称和扩展名,我无法在代码中对其进行硬编码。

我如何下载此类文件?

我正在使用.Net core web-api和Angular 7。

.Net:

public async Task<IActionResult> GetFile(DownloadFileQuery query)
{            
    try
    {                
        var result = await QueryHandler.Handle(query);

        return File(result.Content, "application/octet-stream", result.Name);
    }
    catch (Exception e)
    {
        return BadRequest(e);
    }
}

角度:

// component
// my console log:
// Blob {size: 103550, type: "application/octet-stream"}
// I don't receive filename and extension
..
downloadFile(fileId: string) {
    this.fileService.downloadFile(fileId).subscribe(
      data => {
        console.log(data);
        FileSaver(data, 'How can I find out which file I received?');
      },
      error => console.log(error)
    );
  }
..
// service
..
downloadFile(fileId: string) {
    const queryParams = new HttpParams()
                .set('FileId', param);
    return this.http.get(`api/file/file`, { params: queryParams , responseType: 'blob'});
  }
..

我希望得到filename.extension作为响应。或另一种方式。

0 个答案:

没有答案