The problem is that I have a file input field that takes only one file at a time, I need it to be like this.
If I try to upload one file, everything is fine. But if I need to upload more files it seems like the "change" handler method is not being called unless I reload the page, which is not what anyone would want.
The HTML looks like this:
<div class="col-xs-7">
<button
class="btn btn-primary"
[disabled]="isLoadingModal"
(click)="activityFileInput.click()">
archivo</button> {{ newActivity.fileName }}
<input
type="file"
id="activity-file-input"
[disabled]="isLoadingModal"
(change)="selectFile(activityFileInput.files[0])"
#activityFileInput
hidden>
</div>
The function in the component is:
selectFile(file: File): void {
console.log('Hello');
if(file == undefined)
return;
this.newActivity.fileName = file.name;
this.newActivity.file = file;
}
On the first file upload the "Hello" shows, no problem. But the method doesn't seem to be called more than once. How can this be solved?
Set the value of the input to null in the onclick event...
<input
type="file"
id="activity-file-input"
onclick="this.value = null"
[disabled]="isLoadingModal"
(change)="selectFile(activityFileInput.files[0])"
#activityFileInput
hidden>