相关疑难解决方法(0)

如何使用Angular2下载文件

我有一个WebApi/MVC应用程序,我正在开发一个angular2客户端(以取代MVC).我在理解Angular如何保存文件时遇到了一些麻烦.

该请求是确定的(正常工作与MVC,我们可以登录接收到的数据),但我无法弄清楚如何保存下载的数据(我主要是遵循同样的逻辑这篇文章).我确信这是非常简单的,但到目前为止,我根本不理解它.

组件功能的代码如下.我尝试过不同的方案,则斑的方法应该是,据我了解的路要走,但没有作用createObjectURLURL.我甚至找不到URL窗口中的定义,但显然它存在.如果我使用该FileSaver.js模块,我会得到同样的错误.所以我猜这是最近发生的变化或者尚未实施.如何在A2中触发文件保存?

downloadfile(type: string){

    let thefile = {};
    this.pservice.downloadfile(this.rundata.name, type)
        .subscribe(data => thefile = new Blob([data], { type: "application/octet-stream" }), //console.log(data),
                    error => console.log("Error downloading the file."),
                    () => console.log('Completed file download.'));

    let url = window.URL.createObjectURL(thefile);
    window.open(url);
}
Run Code Online (Sandbox Code Playgroud)

为了完整起见,获取数据的服务如下,但它唯一做的是发出请求并传递数据而不进行映射(如果成功):

downloadfile(runname: string, type: string){
   return this.authHttp.get( this.files_api + this.title +"/"+ runname + "/?file="+ type)
            .catch(this.logAndPassOn);
}
Run Code Online (Sandbox Code Playgroud)

download fileapi typescript angular

151
推荐指数
17
解决办法
33万
查看次数

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 ×2

download ×2

fileapi ×1

http-headers ×1

node.js ×1

typescript ×1