Я пытаюсь написать простую программу чтения текстовых файлов, создав функцию, которая принимает путь к файлу и преобразует каждую строку текста в массив символов, но это не работает.
function readTextFile() {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "testing.txt", true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4) {
var allText = rawFile.responseText;
document.getElementById("textSection").innerHTML = allText;
}
}
rawFile.send();
}
Что здесь не так?
Это все еще не работает после небольшого изменения кода по сравнению с предыдущей версией, и теперь это дает мне XMLHttpRequest
исключение 101.
Я проверил это на Firefox, и он работает, но в Google Chrome он просто не работает и постоянно дает мне исключение 101. Как я могу заставить это работать не только на Firefox, но и на других браузерах (особенно Chrome )?
status
о,0
а также200
.Ответы:
Вам нужно проверить статус 0 (так как при локальной загрузке файлов
XMLHttpRequest
вы не получите статус, потому что он не изWebserver
)И укажите
file://
в своем имени файла:источник
file:///User/Danny/Desktop/javascriptWork/testing.txt
в адресную строку своего браузера и посмотреть, можете ли вы увидеть файл ..true
. Если это был простойlocal
поиск, тогда установка async вfalse
порядке, ноonreadystatechange
не нужна, если для нее установлено значение false. Вот документация: w3schools.com/ajax/ajax_xmlhttprequest_send.aspПосетите Javascripture ! И перейдите в раздел readAsText и попробуйте пример. Вы сможете узнать, как работает функция readAsText в FileReader .
источник
После введения fetch api в javascript чтение содержимого файла не может быть проще.
чтение текстового файла
чтение файла JSON
Обновление 30/07/2018 (отказ от ответственности):
Обновление-2 (отказ от ответственности):
источник
Referer
». Я предполагаю, что это означает прощание с хорошими ol'FileReaders и HttpRequests (и я не буду скучать по ним немного;)Fetch API cannot load file:///C:/Users/path/to/file/file.txt. URL scheme must be "http" or "https" for CORS request.
источник
var reader = new FileReader();
черезreader.readAsBinaryString(..)
- считывает содержимое моего текстового файла. Чистый, элегантный, работает как шарм. Лучший ответ в этой теме для меня - спасибо!Джон Перриман,
Да, js может читать локальные файлы (см. FileReader ()), но не автоматически: пользователь должен передать файл или список файлов в сценарий с помощью HTML
<input type=file>
.Затем с помощью js можно обрабатывать (например, просмотр) файл или список файлов, некоторые их свойства и содержимое файла или файлов.
Что не может сделать js по соображениям безопасности, так это автоматически (без ввода пользователя) получить доступ к файловой системе своего компьютера.
Для автоматического доступа js к локальному fs необходимо создать не html-файл с js внутри, а hta-документ.
Файл hta может содержать внутри себя js или vbs.
Но исполняемый файл hta будет работать только на системах Windows.
Это стандартное поведение браузера.
Кроме того, Google Chrome работал на API API, больше информации здесь: http://www.html5rocks.com/en/tutorials/file/filesystem/
источник
Если вы уже попробовали, введите «false» следующим образом:
источник
Попробуйте создать две функции:
источник
Другой пример - мой читатель с классом FileReader
источник
Современное решение:
Когда пользователь загружает текстовый файл через этот вход, он будет зарегистрирован в консоли. Вот рабочая демоверсия jsbin .
Вот более подробная версия:
В настоящее время (январь 2020 г.) это работает только в Chrome и Firefox, проверьте совместимость здесь, если вы читаете это в будущем: https://developer.mozilla.org/en-US/docs/Web/API/Blob/text
В старых браузерах это должно работать:
источник
Использование Fetch и асинхронной функции
источник
Это может помочь,
источник
Добавив к некоторым ответам выше, это модифицированное решение работало для меня.
....
....
источник
- прочитать текст файла из javascript
- консольный журнал из файла, используя javascript
- Google Chrome и Mozilla Firefox
в моем случае у меня есть такая структура файлов:
результат console.log:
источник
источник
Получить данные локального файла в js (data.js) load:
Файл data.js похож на:
динамическое unixTime queryString предотвращает кэширование.
AJ работает в сети http: //.
источник
Локальные вызовы AJAX в Chrome не поддерживаются из-за политики одного источника.
Сообщение об ошибке в Chrome выглядит следующим образом: «Запросы между источниками не поддерживаются для схем протоколов: http, data, chrome, chrome-extension, https».
Это означает, что chrome создает виртуальный диск для каждого домена для хранения файлов, обслуживаемых доменом по протоколам http / https. Любой доступ к файлам за пределами этого виртуального диска ограничен той же политикой происхождения. AJAX-запросы и ответы происходят по http / https, поэтому не будут работать для локальных файлов.
Firefox не налагает такого ограничения, поэтому ваш код будет успешно работать на Firefox. Однако есть и обходные пути для Chrome: см. Здесь .
источник
Вы можете импортировать мою библиотеку:
затем функция
fetchfile(path)
вернет загруженный файлОбратите внимание: в Google Chrome, если HTML-код является локальным, будут появляться ошибки, но сохранение HTML-кода и файлов в сети, а затем запуск онлайн-файла HTML работает.
источник
Чтобы прочитать текст локального файла с
JavaScript
помощью chrome, браузер chrome должен запустить с аргументом,--allow-file-access-from-files
чтобы разрешить JavaScript доступ к локальному файлу, затем вы можете прочитать его, используяXmlHttpRequest
следующую команду:источник
Как прочитать локальный файл?
Используя это, вы загрузите файл с помощью loadText (), а затем JS будет асинхронно ждать, пока файл не будет прочитан и загружен, после чего он откроет функцию readText (), позволяющую вам продолжить работу с обычной логикой JS (вы также можете написать попытку try). блок функции loadText () в случае возникновения любой ошибки), но для этого примера я оставляю ее минимальной.
источник
Я знаю, я опаздываю на эту вечеринку. Позвольте мне показать вам, что у меня есть.
Это простое чтение текстового файла
Надеюсь, это поможет.
источник