На моем веб-сайте много изображений из /assets/photos/
папки. Как я могу получить список файлов в этой папке с помощью Javascript?
javascript
Bevanb
источник
источник
ActiveXObject
для доступа к файловой системе клиентской системы. Я спросил.Ответы:
Текущий код даст список всех файлов в папке, предполагая, что на стороне сервера вы хотите перечислить все файлы:
var fs = require('fs'); var files = fs.readdirSync('/assets/photos/');
источник
Нет, Javascript не имеет доступа к файловой системе. Серверный Javascript - это совсем другая история, но я думаю, вы не это имеете в виду.
источник
Пишу файл dir.php
var files = <?php $out = array(); foreach (glob('file/*.html') as $filename) { $p = pathinfo($filename); $out[] = $p['filename']; } echo json_encode($out); ?>;
В вашем скрипте добавьте:
<script src='dir.php'></script>
и используйте массив files []
источник
*.*
или используйте scandir для сохранения расширений файлов,$out = scandir("."); echo json_encode($out);
Для файлов на стороне клиента вы не можете получить список файлов в локальном каталоге пользователя.
Если пользователь предоставил загруженные файлы, вы можете получить к ним доступ через их
input
элемент.<input type="file" name="client-file" id="get-files" multiple /> <script> var inp = document.getElementById("get-files"); // Access and handle the files for (i = 0; i < inp.files.length; i++) { let file = inp.files[i]; // do things with file } </script>
источник
Для получения списка имен файлов в указанной папке вы можете использовать:
Это вернет список, который вы можете проанализировать с помощью простой индексации списка, например
file[0],file[1]
, и т. Д.источник
Я сделал свой маршрут для каждого файла в определенном каталоге. Следовательно, переход по этому пути означал открытие этого файла.
function getroutes(list){ list.forEach(function(element) { app.get("/"+ element, function(req, res) { res.sendFile(__dirname + "/public/extracted/" + element); }); });
Я вызвал эту функцию, передав список имен файлов в каталоге,
__dirname/public/extracted
и она создала другой маршрут для каждого имени файла, который я смог отобразить на стороне сервера.источник
Я использую следующий (урезанный код) в Firefox 69.0 (в Ubuntu), чтобы читать каталог и показывать изображение как часть цифровой фоторамки. Страница создана на HTML, CSS и JavaScript и расположена на том же компьютере, на котором я запускаю браузер. Изображения тоже находятся на одной машине, поэтому "снаружи" просмотра нет.
var directory = <path>; var xmlHttp = new XMLHttpRequest(); xmlHttp.open('GET', directory, false); // false for synchronous request xmlHttp.send(null); var ret = xmlHttp.responseText; var fileList = ret.split('\n'); for (i = 0; i < fileList.length; i++) { var fileinfo = fileList[i].split(' '); if (fileinfo[0] == '201:') { document.write(fileinfo[1] + "<br>"); document.write('<img src=\"' + directory + fileinfo[1] + '\"/>'); } }
Для этого
security.fileuri.strict_origin_policy
необходимо отключить политику . Это означает, что это может быть не то решение, которое вы хотите использовать. В моем случае я счел это нормально.источник