#javascript #file
Вопрос:
Я хочу начать с того, что я не думаю, что это дубликат, потому что любой другой вопрос, который я нашел такого рода, основан на получении содержимого файлов из тега document.getElement, в котором пользователь выбирает файл и переходит оттуда. Я пытаюсь прочитать файл, который находится в папке на моем компьютере. В моем диске C. Я не смог найти ничего в этом роде и был бы признателен за любую помощь или указание в правильном направлении. Я пытаюсь выяснить, возможно ли это или нет, используя необработанный v8 js.
Комментарии:
1. Вы ничего не нашли, потому что это невозможно. У JS нет доступа к локальной файловой системе, единственный способ-это
<input type="file">
.2. Правильное направление-защитить любой файл на вашем компьютере, чтобы его не прочитал ни один скрипт на любом сайте))
3. Если это серверное приложение, используете ли вы Node или какую-либо другую среду JS/native? Если да, пожалуйста, включите это в свои теги и свой вопрос, потому что это важная информация.
4. Бэкэнд? В вашем вопросе нет ни слова о бэкэнде … Если у вас есть приложение nodejs, сохраните файлы в папке внутри папки установки вашего узла.
5. JavaScript запускается в среде, в JS нет никаких методов ввода-вывода, он даже не может ничего выводить без среды.
Ответ №1:
Это во многом зависит от контекста и от того, где в данный момент находится файл.
Для файла, указанного пользователем, ваш единственный способ доступа к нему-попросить пользователя загрузить его с помощью <input type="file">
элемента ввода.
Для бэкэнд-файла (т. Е. на вашем компьютере) в JS существует несколько различных сред выполнения, все из которых имеют разные методы импорта или ссылки на локальные файлы.
Вы упоминаете в комментарии, что используете «необработанный» JS через движок V8, который не имеет никаких возможностей для доступа к локальным файлам.
Однако, если вы настроите доступ к Node.js экосистема библиотек вы можете использовать fs
инструмент загрузки файлов, например:
fs.readFile('filepath', (err, data) => {
if (err) throw err;
console.log(data);
});
(документы здесь)
Комментарии:
1. Ни одно из решений в этом ответе не отвечает на проблему, потому что @Luke сказал: «Я не использую node или любую другую платформу». Он также сказал в вопросе, что не собирается использовать
<input type="file">
.2. Они отвечают на общий вопрос, с чем будущие люди столкнутся через Google. Более подробная информация была добавлена в комментариях с тех пор, как я написал этот ответ, но в зависимости от того, что подразумевается под «библиотекой TFC, в которой используется необработанный JavaScript v8», возможно, загрузка
fs
все еще возможна, или если при запуске необработанного js нет API файловой системы, которые я добавил в этот ответ.