<input type="file" accept="image/*">
<button>Upload file</button>
Comment déclencher un événement clic de type d'entrée = fichier à partir de l'événement clic du bouton dans Angular 2?
Vous pouvez exploiter la variable de référence du modèle comme suit:
<input type="file" accept="image/*" #file>
<button (click)="file.click()">Upload file</button>
Le plunkr correspondant est ici https://plnkr.co/edit/JB4HY0oxEUgXXIht2wAv?p=preview
Vous pourriez avoir déclarer la variable pour le champ du fichier d’entrée sous la forme #file
& alors seul le changement de fichier appelle la fonction upload
pour transmettre le fichier téléchargé à la fonction.
<input #file type="file" accept="image/*" (change)="upload(file.files)">
<button #upload (click)="file.click()">Upload file</button>
Dans Angular 4,
HTML:
<ion-input type="file" formControlName="avatar"></ion-input>
<button type="button" ion-button (click)="selectFile()"></button>
Javascript:
selectFile() {
let element: HTMLElement = document.querySelector('input[type="file"]') as HTMLElement;
element.click();
}
C'est un travail pour moi.
Dans Angular 4,
HTML:
<input #fileUpload type="file" (click)="fileUpload.value = null"(change)="importFile($event)" style="display:none"
accept="image/*">
<button (click)="fileUpload.click()"> </button>
Manuscrit:
importFile(event) {
if (event.target.files.length == 0) {
console.log("No file selected!");
return
}
let file: File = event.target.files[0];
// after here 'file' can be accessed and used for further process
}
En considérant le problème futur de la sélection du même fichier qui ne fonctionne pas, Dans l’événement clic sur la balise d’entrée, nous définissons la valeur sur null, ce qui permet au même fichier de sélectionner une seconde fois.