Bonjour,
Je ne comprends pas bien comment fonctionne FileReader.
J'ai lu plusieurs doc et tutos, vu des exemples descriptifs mais pas explicatifs !
Cela se borne à dire de "faire comme ça" et c'est tout, sans aller dans l'explication du mécanisme. Bon, je me doute que c'est de ma faute, mais je ne sais pas ou chercher !!!
Voici un exemple de mon code pour lire un fichier en local :
Lorsque je choisis un fichier et que se lance la fonction verif_file(), le premier "alert()" dans le reader.onload me donne ce que je veut mais l'affectation à ret ne fonctionne pas car le alert(ret) me rend ensuite une chaine vide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function verif_file() { var fileInput = document.querySelector('#fichier'); var reader = new FileReader(); reader.onload = function() { alert(reader.result) ; ret=reader.result} reader.readAsText(fileInput.files[0]); alert(ret) ; return false ; }
Je me dis que l'objet ret n'est pas connu dans la fonction donc je fais un var ret = "" avant d'appeler reader.onload() mais même résultat. J'ai essayé de déclarer le ret en global en dehors de toute fonction mais pareil !
Je ne comprend pas comment récupérer ret en dehors du reader.onload() !
Je pense qu'il s'agit d'une closure on un truc comme ça mais je n'arrive pas à voir comment cela fonctionne.
Merci !
Partager