将上传文件转换为字节数组,以发送到角度/打字稿中的API请求



如何在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/

最新更新