J'utilise le contrôle du type de fichier HTML pour sélectionner et télécharger un fichier (à l'aide d'AngularJS). Mon marquage est comme ci-dessous:
<input id="uploadFile" accept=".csv" type="file" ng-file-select="model.onFileSelect($files)" onchange="angular.element(this).scope().fileNameChanged(this)">
Donc, lorsque je sélectionne un fichier, l'événement FileNameChanged est déclenché et non onFileSelect. Cela fonctionne bien jusqu'à présent. Cependant, si je sélectionne le même fichier à télécharger, l'événement FileNameChanged n'est pas déclenché (car je télécharge le même fichier) mais je souhaite permettre à l'utilisateur de charger le même fichier encore et encore. L'événement onFileSelect n'est jamais déclenché.
Une façon de résoudre ce problème?
Finalement, le HTML m'a ajouté l'événement onclick JS comme ceci:
<input id="uploadFile" onclick="myFunction();" accept=".csv" type="file" ng-file-select="model.onFileSelect($files)" onchange="angular.element(this).scope().fileNameChanged(this)"> function myFunction() { //setting value of null of 0th index coz in my case i allow user to upload only single file. //in case of multiple files, you gotta set value to null of the entire array of file list //returned by the control $('#uploadfile')[0].value = null; return true; }
Avec cela, le contrôle ne cache pas le nom du fichier et la prochaine fois que le même fichier sera sélectionné, l'événement onChange serait déclenché.
Faites-moi savoir si vous rencontrez toujours un problème.
Thx, Sagar