I want to upload 3 files each from it’s own input.
<label class="btn btn-default p-0">
<input type="file" (change)="selectISRFile($event)" />
</label>
<label class="btn btn-default p-0">
<input type="file" (change)="selectLMPFile($event)" />
</label>
<label class="btn btn-default p-0">
<input type="file" (change)="selectPOCMRFile($event)" />
</label>
<button
class="btn btn-success btn-sm"
(click)="uploadFiles()"
>
Upload
</button>
Component functions looks like this
selectISRFile(event): void {
this.selectedFiles[0]= event.target.files;
}
selectLMPFile(event): void {
this.selectedFiles[1] = event.target.files;
}
selectPOCMRFile(event): void {
this.selectedFiles[2] = event.target.files;
}
uploadFiles() {
if (this.selectedFiles) {
for (let i = 0; i < this.selectedFiles.length; i++) {
this.upload(i, this.selectedFiles[i]);
}
}
}
I’m getting selectedFiles is undefined
companyForm: FormGroup; selectedFiles?: FileList; progressInfos: any[] = []; message: string[] = []; selectedISRFile?: File; selectedLMPFile?: File; selectedPOCMRFile?: File;
thank you for your time
Advertisement
Answer
Initialize selectedFiles with empty array
selectedFiles?: File[] = [];
Replace “this.selectedFiles[0]= event.target.files” with below
const file = event.target.files.item(0); this.selectedFiles.push(file); // file you get from event.target.files;