Я пытался открыть файл с
window.open("file:///D:/Hello.txt");
Браузер не позволяет открывать локальный файл таким образом, вероятно, из соображений безопасности. Я хочу использовать данные файла на стороне клиента. Как я могу прочитать локальный файл в JavaScript?
javascript
Джовал
источник
источник
null
каждогоonClick
события должна помочь, см .: stackoverflow.com/a/12102992/63011FileReader
, но комментарий кdisplayContents
вышесказанному: обратите внимание, чтоinnerHTML
подобная настройка для ненадежного контента может быть уязвимостью безопасности. (Чтобы убедиться в этом, создайтеbad.txt
нечто подобное<img src="/nonexistent" onerror="alert(1);">
и убедитесь, что предупреждение выполняется - это может быть более вредоносный код.)innerHTML
наtextContent
. Спасибо за ваш комментарий.DOMContentLoaded
событие для этого.Средство HTML5 fileReader позволяет вам обрабатывать локальные файлы, но они ДОЛЖНЫ быть выбраны пользователем, вы не можете копаться на диске пользователя в поисках файлов.
В настоящее время я использую это с версиями разработки Chrome (6.x). Я не знаю, какие браузеры его поддерживают.
источник
Поскольку у меня нет жизни, и я хочу эти 4 очка репутации, чтобы я мог проявить свою любовь к людям, которые действительно хороши в кодировании, я поделился своей адаптацией кода Паоло Моретти . Просто используйте
openFile(
функцию для выполнения с содержимым файла в качестве первого параметра)
.источник
clickElem()
, вы можете просто позвонитьfileInput.click()
. (по крайней мере, в последней версии Chrome)Пытаться
но пользователь должен принять меры, чтобы выбрать файл
Показать фрагмент кода
источник
Метод запроса xmlhttp недопустим для файлов на локальном диске, потому что безопасность браузера не позволяет нам сделать это. Но мы можем переопределить безопасность браузера, создав ярлык-> щелчок правой кнопкой мыши -> свойства в цели "... браузер location path.exe "append --allow-file-access-from-files. Это проверено на chrome, однако следует позаботиться о том, чтобы все окна браузера были закрыты и код запускался из браузера, открытого с помощью этого ярлыка.
источник
Ты не можешь Новые браузеры, такие как Firefox, Safari и т. Д., Блокируют протокол 'file'. Это будет работать только на старых браузерах.
Вам нужно будет загрузить нужные файлы.
источник
Javascript обычно не может получить доступ к локальным файлам в новых браузерах, но объект XMLHttpRequest может использоваться для чтения файлов. Так что на самом деле это Ajax (а не Javascript), который читает файл.
Если вы хотите прочитать файл
abc.txt
, вы можете написать код как:Теперь
txt
содержит содержимое файла abc.txt.источник