在类型脚本中将字符串/文本转换为字节数组

时间:2016-07-27 08:27:02

标签: angularjs http typescript angular blob

我目前正致力于在我的系统中以角度2(beta)版本使用安全API下载文件(PDF / excel / text)。

我使用了带有身份验证标头的post API,并尝试使用收到的数据字节创建blob。

我尝试使用以下代码

return this.http.get(url, { headers: this.headers}).map( response => response.blob())

但是,我得到的错误是在角度2 HTTP中没有实现blob方法。

所以我正在尝试使用代码,我需要将字符串转换为字节数组。

return this.http.get(Configuration.API_URL + url, { headers: this.headers }).map(
            response => {
                var bytes = [];

                var utf8 = encodeURIComponent(response.text());
                for (var i = 0; i < utf8.length; i++) {
                    bytes.push(utf8.charCodeAt(i));
                }    
                var data = new Blob([bytes], { type: 'application/pdf' });
                var fileURL = URL.createObjectURL(data);
                window.open(fileURL);
            }
        );

这里我面临一些字节数组的问题。字节数组与API发送的字节数组不同。

在将字符串转换为字节数组或在angular 2 HTTP get请求中使用blob时需要帮助。

1 个答案:

答案 0 :(得分:1)

可能,下面的npm包可以帮助您将其转换为ByteArray。

https://www.npmjs.com/package/xdata

希望它可以帮到你!

干杯!