我想从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';
然后您将获得正确的文件名。