相关疑难解决方法(0)

Node + Angular:下载带有 HTTP 请求的文件

我尝试了 400 种语法和标头的组合,但不知道如何从 Angular 进行 HTTP 调用以从我的 NodeJS 服务器检索文件。

在 Stackoverflow 上找到并尝试,无济于事:

从 http post 请求下载文件 - Angular 6

如何从 HttpClient 下载文件

使用 Express 从 NodeJS 服务器下载文件

如何使用 Angular2 下载文件

它不能是一个简单的<a download>标签或公共express.static()文件夹,因为对文件的访问受到限制,我需要传递一个 JWT 令牌(在 Node 中,我有一个 Express 身份验证中间件,如果没有提供令牌,它将拒绝请求在标题中或如果它无效)。

该文件是一个 GZIP :./dumps/dump.gz并且重 812 Kb。

我确实设法下载了该文件,但无论我尝试什么,它的大小都是 1.4 MB 或 94 字节(大小错误)并且无法打开 (7zip can't open file downloads/dump.gz as archive)。

我尝试过的Angular 端(多次尝试):

import { saveAs } from 'file-saver';

let headers = new Headers({
    "Authorization": "Bearer …
Run Code Online (Sandbox Code Playgroud)

download http-headers node.js angular

7
推荐指数
1
解决办法
7588
查看次数

如何在Angular 4中下载excel/Zip文件

我使用角4作为前端,而内腔5.4作为后端.

我的要求是将一些数据导出为ex​​cel和zip文件.

使用{ saveAs }'file-saver/FileSaver';包导入文件下载.

Angular 4代码:

downloadExcel() {

const type = 'application/vnd.ms-excel';
const headers = { headers: new Headers({ 'Accept': type }) };
const filename = 'file.xls';

this.http.get('http://10.2.2.109/Download/exportExcel', headers)
  .toPromise()
  .then(response => this.saveToFileSystem(response, type, filename));

return false;


}



private saveToFileSystem(response, __type, filename) {
    const contentDispositionHeader: string = response.headers.get('Content-Disposition');

if (contentDispositionHeader !== null) {
  const parts: string[] = contentDispositionHeader.split(';');
  //const filename = parts[1].split('=')[1];
  const blob = new Blob([response._body], { type: __type });
  saveAs(blob, filename);
} else …
Run Code Online (Sandbox Code Playgroud)

excel file download angular

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular ×2

download ×2

excel ×1

file ×1

http-headers ×1

node.js ×1