#javascript
#javascript
Вопрос:
Используется Filesaver.js плагины для загрузки текстового файла. По умолчанию файл загружается в мою папку загрузки. Необходимо сохранить загруженный файл в определенной папке.
Комментарии:
1. Это невозможно в javascript. Но вы можете изменить каталог загрузки в вашем браузере.
2. Этот параметр контролируется пользователем браузера. Вы не имеете права сохранять материал на устройстве пользователя, где вам заблагорассудится. Устройство принадлежит пользователю, и он может выбирать, где сохранять загрузки. На самом деле, JavaScript даже не знает, какова структура файловой системы (и не должен знать, это было бы большой дырой в безопасности)
3. @yash vadhvani что вы имеете в виду? Насколько я знаю, JavaScript не может выбрать, в какую папку сохранить файл … если вы не можете привести пример??
4. @ADyson Мне действительно жаль, что я хочу добавить в свой ответ через браузер, например, перед загрузкой вы можете указать место загрузки
5. @ADyson Да, это совершенно верно, сэр.
Ответ №1:
Это невозможно … к счастью! Представьте, что произойдет, если JS, который запускается в вашем браузере, сможет изменить вашу файловую систему. Дыра в безопасности была бы настолько большой, что все бы (и определенно должны) прекратили пользоваться Интернетом. Представьте ситуацию, когда я создал веб-сайт, который onload
запускает код, сохраняющий файл в вашей файловой системе. Файл попадает в ваш cron.daily
каталог (предположим, вы используете Linux). Что делает файл? — вы можете спросить (если бы вы знали, что он вообще был сохранен:smiling_imp:). Ничего особенного — просто ищу некоторые личные данные и по завершении удаляю случайные файлы из /usr/bin
, /proc
, /sys
и, возможно /etc
, просто чтобы посмотреть, что получится.
Теперь вы видите проблему? Код, который запускается в вашем браузере до того, как вы сможете отреагировать на это, не может обладать такой мощью, чтобы сохранять что-либо в вашей файловой системе. Единственное, что вы можете сделать, чтобы предоставить пользователю файл, — это использовать модуль типа Filesaver.js который, по сути, вообще не имеет доступа к файловой системе пользователя. Он просто отправляет запрос GET непосредственно к файлу, и именно браузер загружает файл (потому что именно так работает браузер). Итак, единственный способ изменить местоположение загруженного файла — это изменить настройки браузера. Другого способа я не знаю.
Ответ №2:
Ответ отрицательный, изменение каталога невозможно по соображениям безопасности в File API.