Estoy tratando de cargar un archivo de texto simple en javascript, desafortunadamente sin éxito. mi código es:
var my_text:any; var my_file:File = new File([], "C:\\Users\\riki7\\Downloads\\classes.txt"); var reader = new FileReader(); reader.onload = function() { my_text = reader.result; }; reader.readAsText(my_file); alert(my_text);después de que se ejecute este código, esperaría ver el contenido del archivo classes.txt en una alerta emergente, en lugar de eso aparece 'indefinido'. mi archivo contiene a, b, c.
alguien sabe cual es mi problema? ¿quizás el primer parámetro para el constructor File()?
Tienes que usar la etiqueta html <input type="file" id="input" /> y luego colgarle un detector de eventos, así
const inputElement = document.getElementById("input"); inputElement.addEventListener("change", handleFiles, false); function handleFiles() { const fileList = this.files; /* now you can work with the file list */ }luego, simplemente omita su archivo en FileReader
const reader = new FileReader(); reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img); reader.readAsDataURL(file);Y supongo que eso sería todo. Puede encontrar más ejemplos allí: https://developer.mozilla.org/en-US/docs/Web/API/File_API/Using_files_from_web_applications
Tener su código donde su alert se ejecuta por adelantado en la función de devolución de llamada. Si necesita ver cambios en el contenido, simplemente mueva su alerta a la función de devolución de llamada:
reader.onload = function() { my_text = reader.result; alert(my_text); }; porque my_text no está listo cuando llama a la alerta externa.
<html> <head> <script> var fileReadEvent = function(event) { var input = event.target; var reader = new FileReader(); reader.onload = function(){ var text = reader.result; alert(text) }; }; </script> </head> <body> <input type='file' accept='text/plain' onchange='fileReadEvent(event)'><br> </body> </html> <input type="file" id="selectedFile"> <p id="display"></p> <script> var fr = new FileReader(); let test; document.getElementById('selectedFile').addEventListener('change', x); function x() { fr.onload = ()=>{ document.getElementById('display').innerText = fr.result; test = fr.result; alert(fr.result); } fr.readAsText(this.files[0]); } </script>