我正在尝试将上传的文件转换为base64,以便将其上传到我的Angular应用程序中的API
我有以下代码对单个文件非常有效,但是如果用户选择多个文件,我只会多次获得第一个文件,即第二个及后续文件不会转换为Base64。
我在做什么错了?
onFileChanged(event) {
var files = event.target.files;
for (let i = 0; i < event.target.files.length; i++) {
this.selectedFile = new SelectedFile();
this.totalSize += files[i].size;
var extension = files[i].name.split('.').pop();
this.selectedFile.extension = (extension === files[i].name) ? '' : extension;
this.selectedFile.name = files[i].name;
this.selectedFile.size = files[i].size;
var reader = new FileReader();
reader.onload = this.handleReaderLoaded.bind(this);
reader.readAsBinaryString(files[i]);
};
}
handleReaderLoaded(readerEvt) {
var binaryString = readerEvt.target.result;
this.base64textString = btoa(binaryString);
this.selectedFile.file = btoa(binaryString);
this.selectedFiles.push(this.selectedFile);
}