角2/4手柄res.download

时间:2017-08-31 13:50:28

标签: javascript node.js angular express download

我遇到了使用angular下载文件的问题。

使用Postman时,文件在正文中正确显示。

我正在使用快递函数res.download,我可以下载该文件,但这不是一个有用的png我做错了什么?

My Angular 4 implimentation:

        this.http.post(localhost,{"jabcontent": cert._id})
        .subscribe(
            data => {
                console.log(data.text());
                var blob = new Blob([data.text()], {type: "image/png"});
                FileSaver.saveAs(blob, "test.png" );
                /* var blob = new Blob([data.text()], {type: "image/png"});
                var objectUrl = URL.createObjectURL(blob);
                window.open(objectUrl); */
            }
        )

1 个答案:

答案 0 :(得分:1)

我明白了。

我的后端是正确的:

         res.download(pathtoFile, filename, (err) => {
            //err handeling
        }); 

我对责任的处理方式犯了错误。响应的映射也不正确我也将响应类型设置为blob。获得的转换是为了保持一致。

    var headers = new Headers();
    headers.append('xyz', '1234'); //request parameter
    let options = new RequestOptions({ headers: headers, responseType: ResponseContentType.Blob });
    this.http.get('apipath', options)
        .map((response: Response)=> response.blob())
        .subscribe(data => {
            FileSaver.saveAs(data, "filename");
        }
        );