Как заполнить массив содержимым из папки используя javascript?

0

Здравствуйте, 

столкнулся со следующей прооблемой: 

надо  заполнить пустой массив названием файлов содержащихся в папке img используя javascript

или немного проще -> можно ли как-либо прочитать названия файлов находящихся внутри папки находящийся в проекте 

!!!название файлов не изменять 

javascript

3 ответов

0

С помощью обычного javascript нельзя считать файлы из папки.

Для считывания файлов из папки потребуется nodejs и код считывания будет примерно такой:

var fs = require('fs');
var files = fs.readdirSync('/photos/');

Можно считывать файлы из папки и с помощью php и использовать в javascript. Нужно создать php-файл с fileload.php с таким содержимым:

var files = <?php $out = array();
foreach (glob('file/*.html') as $filename) {
    $p = pathinfo($filename);
    $out[] = $p['filename'];
}
echo json_encode($out); ?>;

И в html файле вставить это:

<script src='fileload.php'></script>

и в javascript считать массив подгруженный в js скрипт.

2

NodeJS нужно установить сначала.

1. Нужно создать папку, например test

2. Перейти в эту папку и открыть ее в терминале (в гит терминале или в cmd виндоус)

3. В терминале написать npm init и жать enter отвечая на вопросы.

4. Создать папку files в папке test и в ней создать файлы (test1.txt, test2.txt, test3.txt)

5. Создать файл в корне папки text с таким содержимым:

var fs = require('fs');
var files = fs.readdirSync('files/');
console.log(files);

6. Запустить npm install

7. Запустить node index.js и в терминале будут выведены название всех файлов из папки files.

Структура такая проекта:

test

    files

        test1.txt

        test2.txt

        text3.txt

index.js

package.json

pakage-lock.json

node_modules

0

спасибо за ответ.

надо без php.

можете пожалуйста еще популярно объяснить что означает : "Для считывания файлов из папки потребуется nodejs" -- просто запустить через терминал команду нпм старт и код будет работать или надо еще произвести какие-то манипуляции?

Sign up or Log in to write an answer