我p-fileUpload
在Angular 6.0.0
应用程序中使用,用于上传图像文件(在这种情况下是多个图像文件)。它有一个(uploadHandler)
用于上传文件的事件处理程序。
<p-fileUpload multiple="true" name="myfile[]" accept="image/*" [auto]="true"
customUpload="true" chooseLabel="Select" (uploadHandler)="uploadImage($event)">
</p-fileUpload>
e.files
文件正在正确上传,但是在遍历数组时我无法生成 base64 代码,因为reader.onloadend
没有触发。我已经搜索了这个触发问题并发现了一些相关问题,但它们的解决方案并没有解决我的问题。下面是我为多个图像文件上传编写的代码 -
uploadImage(e: any) {
if (e && e.files.length) {
const reader: FileReader = new FileReader();
e.files.forEach((i: File, j: any) => {
reader.onloadend = (ev: any) => {
console.log('inside??');
// Console is not triggered
};
// reader.readAsDataURL(...);
this.cdr.markForCheck(); // For outside zone detection
});
}
}
请帮我解决这个问题。我在同一个应用程序中使用相同的代码上传单个图像(所以我不需要forEach
在那里循环),并且它在所有其他地方都可以正常工作,与这种情况不同。