如何在Angular/Typescript中将上传的文件转换为字节数组?
组件.ts
buildRequest(): CreateRequest {
var reader = new FileReader();
return {
create: {
fileData: this.reader.readAsArrayBuffer(this.fileToUpload)
}
};
}
型
export interface CreateRequest {
create: {
fileData: Uint8Array[]; // Also, is this correct representation of byte array?
};
}
目前,当我将ReadAsArrayBuffer
函数分配给文件数据时,我收到错误 -
"类型'void'不能分配给类型'Uint8Array[]'">
.
将字节数组发送到 API 请求的正确方法是什么?
这个问题已经在这里得到了解答!
我相信该属性是字符串、blob 或任何属性。
export interface CreateRequest {
create: {
fileData: string|any;
};
}
顺便说一句,IO函数是异步的(可能在任何语言中(!,你需要使用事件侦听器。
reader.addEventListener('loadstart', handleEvent);
reader.addEventListener('load', handleEvent);
reader.addEventListener('loadend', handleEvent);
reader.addEventListener('progress', handleEvent);
reader.addEventListener('error', handleEvent);
reader.addEventListener('abort', handleEvent);
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event
如果您需要其他参考资料,希望对您有所帮助!
https://nehalist.io/uploading-files-in-angular2/