我正在尝试为从Angular应用程序中选择的文件提取byteArray。我正在使用FileReader类的“ readAsArrayBuffer”属性来获取文件作为数组缓冲区,其输出如下:
下面是上面输出的代码示例:
onFileSelected(event)
{
if (event.target.files && event.target.files.length > 0)
{
let reader = new FileReader();
if(event.target.files && event.target.files.length > 0) {
let file = event.target.files[0];
reader.readAsArrayBuffer(file);
reader.onload = () => {
this.form.get('file').setValue({
filename: file.name,
filetype: file.type,
value:reader.result
})
};
}
}
else
{
console.log("Error");
}
}
我正试图从下面的语句中获取Uint8Array:
值:String.fromCharCode.apply(空,新的Uint8Array(reader.result))
下面是相同的代码。与上面相同,只是对“值”属性进行了较小的更改。
onFileSelected(event)
{
if (event.target.files && event.target.files.length > 0)
{
let reader = new FileReader();
if(event.target.files && event.target.files.length > 0) {
let file = event.target.files[0];
console.log(file);
reader.readAsArrayBuffer(file);
reader.onload = () => {
this.form.get('file').setValue({
filename: file.name,
filetype: file.type,
value:String.fromCharCode.apply(null, new Uint8Array(reader.result))
})
};
}
}
else
{
console.log("Error");
}
}
其输出如下。这是一个错误:
我尝试执行以下线程给出的解决方案,但未成功:
Maximum call stack size exceeded error
我需要将我的文件作为字节数组,以便可以将其传递给仅将文件作为byteArray接受的REST API。谢谢!