Я новичок-промежуточный программист, берущий удар в AJAX. При чтении на JavaScript мне было любопытно, что большинство примеров, которые я использовал для использования PHP для такой операции. Я знаю, что многие из вас могут утверждать, что "я делаю это неправильно" или "JavaScript - это язык на стороне клиента" и т.д., Но вопрос стоит., Вы можете написать файл только в JavaScript?
Можно ли записать в файл (на диске) с помощью JavaScript?
Ответ 1
Да, конечно, вы можете. Это зависит от того, какие API-объекты предоставляет вам механизм javascript.
Однако, вероятность того, что механизм javascript, о котором вы думаете, не предоставляет этой возможности. Определенно, ни один из основных веб-браузеров не позволит.
Ответ 2
Вы можете писать файлы cookie с помощью Javascript, в новых браузерах у вас также есть база данных SQLite для хранения данных на стороне клиента. Однако вы не можете хранить данные в произвольном месте на диске.
Ответ 3
Вы можете использовать что-то вроде Google Gears для создания приложений JS, которые могут хранить данные в локальном кеше или базе данных. Вы не можете читать или писать произвольные области диска. (Это было написано в 2009 году - Google Gears теперь устарела)
В эти дни вы должны смотреть на локальные возможности хранения, предоставляемые HTML5
Ответ 4
Нет. Вы можете использовать JavaScript для создания запроса AJAX для обработки на стороне сервера script, но позволяя JS напрямую писать на диск - либо на стороне клиента, либо на стороне сервера - было бы массивным, неприятным, вопиющим, непростительным отверстием для обеспечения безопасности браузера.
Ответ 5
Короткий ответ - нет; вы не можете по умолчанию записывать файл на локальный диск, используя простой JavaScript в браузере. Для этого вам понадобится помощник. Например, TiddlyWiki - это движок вики, который представляет собой единственный статический HTML файл, но он может записывать себя на диск с помощью апплета Java (Tiddly Saver).
Ответ 6
Вы можете в Windows Scripting Host.
Ответ 7
Нет, Javascript не имеет права доступа к файловой системе вообще, это ограничение безопасности в браузере. Единственный способ, которым вы действительно можете это сделать, - это использовать ActiveX, но затем ограничивать себя использованием IE.
Edit: Как указано выше, это может быть возможно, если ваш движок разрешил его, однако я не знаю об одном движке браузера (что я и хотел, вы его пишете), что позволит вам.
Ответ 8
Следующая версия chrome (v52) сделала это возможным с помощью api + service worker + streams, теперь вы можете включить потоки с флагом...
вы можете перейти к StreamSaver.js, чтобы увидеть некоторые примеры того, как его использовать.
Вы можете сделать что-то вроде этого:
const writeStream = fs.createWriteStream('filename.txt')
const encoder = new TextEncoder
let data = 'a'.repeat(1024)
let uint8array = encoder.encode(data + "\n\n")
writeStream.write(uint8array)
writeStream.close()
Или просто взгляните на демо: https://jimmywarting.github.io/StreamSaver.js/example.html