通过"Blob"下载时更改 Angular 中的文件名



我想从angular中的服务器下载文件:

该代码来自服务:

DownloadVerifyFile(requestId, fileId): any {
return this.httpClient
.get(this.appConfig.apiEndpoint + '/VerifyRequest/File/' + requestId + '/' + fileId,
{ responseType: 'blob' });
}

以及在brwoser:中下载该文件的代码

DownloadFile(fileId): void {
this.requestService.DownloadVerifyFile(this.id,fileId).subscribe(response => {
const a = document.createElement('a')
const objectUrl = URL.createObjectURL(response)
a.href = objectUrl
a.download = response;
a.click();
URL.revokeObjectURL(objectUrl);
});
}

但我有一个问题,当我下载文件时,文件名是这个[object Blob],但我想按原始名称下载,例如,如果文件是file1.jpg,当下载的文件名必须是fil1.jpg而不是[object Blob]。我该如何解决这个问题???

因为您已经通过响应命名了文件(它是一个对象(。你几乎成功了。只是一个小变化如下:

a.download = response;

a.download = 'fil1.jpg';

然后您将获得正确的文件名。

最新更新