Кто-нибудь может дать пример кода для чтения и записи файла с использованием JavaScript?
javascript
file-io
user4642212
источник
источник
Ответы:
Для полноты, OP не заявляет, что он собирается сделать это в браузере (если он, как было сказано, это вообще невозможно)
Однако javascript сам по себе позволяет это; это можно сделать с помощью серверного JavaScript.
Смотрите эту документацию по классу Javascript File.редактировать : Эта ссылка была на документы Sun, которые теперь были перемещены Oracle.
Чтобы идти в ногу со временем, вот документация node.js для класса FileSystem: http://nodejs.org/docs/latest/api/fs.html
Изменить (2) : Теперь вы можете читать файлы на стороне клиента с помощью HTML5: http://www.html5rocks.com/en/tutorials/file/dndfiles/
источник
Нет. JavaScript на стороне браузера не имеет разрешения на запись на клиентский компьютер без необходимости отключать множество параметров безопасности
источник
This answer is not useful
.Будущее здесь! Предложения ближе к завершению, больше нет ActiveX, ни flash, ни java. Теперь мы можем использовать:
API файловой системы
Родной доступ к файлам Drag & Drop
Вы можете использовать Drag / Drop, чтобы получить файл в браузер, или простой элемент управления загрузкой. Когда пользователь выбрал файл, вы можете прочитать его с помощью Javascript: http://www.html5rocks.com/en/tutorials/file/dndfiles/
источник
вот предложение Mozilla
http://www-archive.mozilla.org/js/js-file-object.html
это реализовано с помощью параметра компиляции в spidermonkey, а также в extenndscript Adobe. Дополнительно (я думаю) вы получаете объект File в расширениях Firefox.
Rhino имеет (довольно рудиментарную) функцию readFile https://developer.mozilla.org/en/Rhino_Shell
для более сложных файловых операций в Rhino вы можете использовать методы java.io.File.
вы не получите ничего подобного в браузере. Для аналогичной функциональности в браузере вы можете использовать функции базы данных SQL из HTML5, клиентское постоянство, файлы cookie и объекты флэш-памяти.
источник
Эта функция Javascript представляет полное диалоговое окно «Сохранить как» пользователю, который запускает это через браузер. Пользователь нажимает ОК, и файл сохраняется.
Редактировать: следующий код работает только с браузером IE, так как Firefox и Chrome сочли этот код проблемой безопасности и заблокировали его работу.
Вызовите функцию:
источник
Если вы используете JScript (Javascript от Microsoft) для выполнения локальных сценариев с использованием WSH (НЕ в браузере!), Вы можете использовать
Scripting.FileSystemObject
для доступа к файловой системе.Я думаю, что вы можете получить доступ к тому же объекту в IE, если отключите много настроек безопасности, но это будет очень, очень плохая идея.
MSDN здесь
источник
hta
приложении, и это решает егоВ настоящее время файлы могут быть записаны и прочитаны из контекста вкладки / окна браузера с помощью File , FileWriter и FileSystem. API-интерфейсов , хотя есть некоторые предостережения относительно их использования (см. Хвостовую часть этого ответа).
Но чтобы ответить на ваш вопрос:
Использование BakedGoods *
Написать файл:
Читать файл:
Использование сырых API File, FileWriter и FileSystem
Написать файл:
Читать файл:
Только то, что вы просили правильно? Может быть, а может и нет. Последние два API:
Кроме того, в спецификации FileSystem нет указаний о том, как структуры каталогов должны отображаться на диске. Например, в браузерах на базе Chromium песочница имеет виртуальную файловую систему (структура каталогов, которая не обязательно существует на диске в той же форме, что и при обращении из браузера), в которой каталоги и файлы, созданные с помощью API размещены.
Таким образом, хотя вы и можете записывать файлы в систему с помощью API, поиск файлов без API (ну, без API FileSystem) может быть нетривиальным делом.
Если вы можете справиться с этими проблемами / ограничениями, эти API-интерфейсы являются практически единственным родным способом сделать то, что вы просили.
Если вы открыты для неродных решений, Silverlight также разрешает ввод-вывод файлов из конкурса вкладок / окон через IsolatedStorage . Однако для использования этой возможности требуется управляемый код ; решение, которое требует написания такого кода, выходит за рамки этого вопроса.
Конечно, решение, которое использует дополнительный управляемый код, оставляя для написания только Javascript, вполне в рамках этого вопроса;):
* BakedGoods - это библиотека Javascript, которая устанавливает единый интерфейс, который можно использовать для выполнения общих операций хранения во всех собственных и некоторых не собственных средствах хранения. Это поддерживается этим парнем прямо здесь:).
источник
Для Firefox:
См. Https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O
Для других, проверьте приложение TiddlyWiki , чтобы увидеть, как оно это делает.
источник
В контексте браузера Javascript может ПРОЧИТАТЬ указанный пользователем файл. См . Блог Эрика Биделмана о подробностях чтения файла с помощью File API. Тем не менее, Javascript на основе браузера не может ЗАПИСАТЬ файловую систему локального компьютера без отключения некоторых параметров безопасности, поскольку это считается угрозой безопасности для любого веб-сайта, который может произвольно изменить вашу локальную файловую систему.
Сказав это, есть несколько способов обойти это в зависимости от того, что вы пытаетесь сделать:
Если это ваш собственный сайт, вы можете встроить Java-апплет в веб-страницу. Тем не менее, посетитель должен установить Java на локальном компьютере и будет предупрежден об угрозе безопасности. Посетитель должен разрешить загрузку апплета. Апплет Java похож на исполняемое программное обеспечение, которое имеет полный доступ к локальному компьютеру.
Chrome поддерживает файловую систему, которая является частью изолированной локальной файловой системы. Смотрите эту страницу для деталей. Это дает вам возможность временно сохранять вещи локально. Однако это не поддерживается другими браузерами.
Если вы не ограничены браузером, Node.js имеет полный интерфейс файловой системы. Смотрите здесь для документации по файловой системе . Обратите внимание, что Node.js может работать не только на серверах, но и на любом клиентском компьютере, включая Windows. Бегущий по тестам javascript Карма основан на Node.js. Если вы просто любите программировать в javascript на локальном компьютере, это вариант.
источник
Для создания файла попробуйте
Создайте свой каталог на диске C, потому что Windows имеет защиту от записи из Интернета, например, создайте папку с именем «tmp» на диске C.
источник
Вам придется обратиться к Flash, Java или Silverlight. В случае Silverlight вы будете смотреть на изолированное хранилище . Это позволит вам записывать файлы на собственной игровой площадке на диске пользователей. Это не позволит вам писать за пределами вашей игровой площадки.
источник
Вы не можете сделать это любым кросс-браузерным способом. В IE есть методы, позволяющие «доверенным» приложениям использовать объекты ActiveX для чтения / записи файлов, но это, к сожалению, так.
Если вы хотите сохранить информацию о пользователях, вам, скорее всего, понадобятся файлы cookie.
источник
Из теста ReactJS следующий код успешно записывает файл:
Файл записывается в каталог, содержащий тесты, поэтому запись в настоящий файл JSON '* .json' создает цикл!
источник
Вы не можете выполнять файловый ввод / вывод на стороне клиента, используя JavaScript, так как это может представлять угрозу безопасности. Вы должны либо заставить их загрузить и запустить exe-файл, либо, если файл находится на вашем сервере, использовать AJAX и серверный язык, такой как PHP, для выполнения ввода-вывода на стороне сервера.
источник
Использование расширений JavaScript
Использование веб-страницы и объектов Active X
источник
Вот решение для записи chrome v52 + (пользователю все еще нужно выбрать конечную точку ...)
источник: StreamSaver.js
Лучше всего подходит для записи больших данных, сгенерированных на стороне клиента.
В противном случае я предлагаю использовать FileSaver.js для сохранения Blob / Files
источник