Как я могу прочитать локальный файл, когда пользователь нажимает кнопку с помощью файлового API HTML5?

Я пытаюсь использовать jQuery и API файлов HTML5 для получения данных из локального файла. Я хочу прочитать файл и получить из него текст, но только тогда, когда пользователь нажимает кнопку, а не когда изменяется содержимое поля ввода.

Вот код, который я сейчас использую:

files = $("#file").files;
var reader  = new FileReader();
reader.onload = function(event) {
    var content = event.target.result;
    alert(content);
    agregar(content[0]);
    alert(content);
}
reader.readAsText(files[0]);

Этот код срабатывает, когда пользователь нажимает кнопку на странице. Моя проблема в том, что когда код запускается, files не определен, и поэтому я не могу получить от него нужные мне данные. Как я могу получить содержимое входного файла, чтобы передать его в качестве параметра функции FileReader.readAsText()?


person Andrés    schedule 02.04.2012    source источник
comment
можешь выложить свой html? Недавно я задал вопрос, связанный с загрузкой файлов и последующим чтением данных файла с помощью javascript. вот вопрос. Проверьте мой код здесь... stackoverflow.com/questions/9099486/< /а>   -  person DG3    schedule 02.04.2012


Ответы (1)


Массив files является свойством элемента <input type=file> DOME. Я не знаю, как получить к нему доступ с помощью jQuery, но вы всегда можете получить вспомогательный элемент DOMElement из элемента jQuery, используя .get(0), поэтому вы можете получить доступ к своим файлам здесь:

var files = $('#file').get(0).files;

Или с помощью простого javascript:

var files = document.getElementById('file').files;
person Linus Thiel    schedule 02.04.2012