我想使用发布请求下载大文件。 我需要添加一些授权标头,所以我想使用发布请求
this.http.post(request).subscribe(
(response: HttpResponse) => {
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:'+contentType+',' + encodeURI(response.body);
hiddenElement.target = '_blank';
document.body.appendChild(hiddenElement);
hiddenElement.click();
document.body.removeChild(hiddenElement);
},
err => {this.log(err); console.log('error is ', err); },
);
我正在使用以上代码片段下载文件。 它适用于小文件,但不适用于大文件。
在从服务器获取全部数据之前,不会将响应传递给观察者函数。
因此它不会立即打开一个弹出窗口来保存文件,然后获取数据(这是正常的预期行为) 取而代之的是,它会提取全部数据,然后弹出弹出窗口来保存文件,然后保存内容。
因此,我希望在服务器发送响应标头和状态代码之后,在获取整个数据之前立即弹出窗口并开始下载文件