当前位置 : 主页 > 网页制作 > HTTP/TCP >

http – 如何从angular2 RC5中的API下载PDF?

来源:互联网 收集:自由互联 发布时间:2021-06-16
前一个问题有一些很好的解决方法: Angular 2 download PDF from API and Display it in View 但是现在RC5已经出来了,我们可以使用arrayBuffer().我似乎无法随心所欲.我如何从这个转到一个不错的pdf bl
前一个问题有一些很好的解决方法:

Angular 2 download PDF from API and Display it in View

但是现在RC5已经出来了,我们可以使用arrayBuffer().我似乎无法随心所欲.我如何从这个转到一个不错的pdf blob:

return this._authHttp.get(this.fileUrl+id)
        .map((res:Response) => res.arrayBuffer())
        .subscribe(
            data => {
                console.log(data);
                var blob = new Blob([data], {type: 'application/pdf'});
                console.log(blob);
                saveAs(blob, "testData.pdf");

        },
            err => console.error(err),
        () => console.log('done')
    );

数据最终是我预期的两倍.我缺少什么想法?

我在下载pdf文件时遇到同样的问题.我浪费了两天时间来解决这个问题,但终于让它工作了.你需要将responseType设置为blob.

return this._authHttp.get(this.fileUrl+id , 
                         { responseType: ResponseContentType.Blob })
    .map((res:Response) => res.blob())
    .subscribe(
        data => {
            console.log(data);
            var blob = new Blob([data], {type: 'application/pdf'});
            console.log(blob);
            saveAs(blob, "testData.pdf");

    },
        err => console.error(err),
    () => console.log('done')
);

并且不要忘记导入ResponseContentType

希望这对你有所帮助

网友评论