【问题标题】:angular 2/4 handle res.download角 2/4 手柄 res.download
【发布时间】:2023-03-19 03:47:01
【问题描述】:

我在使用 Angular 下载文件时遇到了问题。

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

我正在使用 express 功能 res.download 并且我可以下载文件但它不是一个有效的 png 我做错了什么?

我的 Angular 4 实现:

        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); */
            }
        )

【问题讨论】:

    标签: javascript node.js angular express download


    【解决方案1】:

    我想通了。

    我的后端是正确的:

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

    我在处理响应时犯了一个错误。响应的映射不正确,我也将响应类型设置为 blob。切换到 get 是为了保持一致性。

        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");
            }
            );
    

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      相关资源
      最近更新 更多