我想添加一个图像文件到“转换”功能。
这是我从 component.html 中输入的代码:
<li>
<label for="avatarIMG" id="avatarLbL"> image: </label>
<input type="file" accept="image/*" #imageBox name="image" id="avatarinput" (change)="convert($event)">
<button type="button" id="avatarInputBTN" (click)="imageBox.click()"> Profile Picture </button>
</li>
该事件假设将对象的值连同表单中的所有值+图像文件发送到component.ts,这是它的代码:
public convert(e: Event): void {
this.eventFiles = (e.target as HTMLInputElement).files[0];
if (this.eventFiles !== null) {
this.user.image = this.eventFiles;
const fileReader = new FileReader();
fileReader.onload = args => this.preview = args.target?.result?.toString();
fileReader.readAsDataURL(this.eventFiles);
}
}
我收到一个错误,对象可能为 null for (e.target as HTMLInputElement).files[0]。
我该如何解决这个问题?..
答案 0 :(得分:1)
试试这个:
this.eventFiles = (e.target as HTMLInputElement)?.files?.[0];