Получение URL-адреса из местоположения файла с использованием Javascript
У меня есть слайдер, который использует HTML-файл в кадре на SharePoint. Слайды меняются довольно часто, и этот слайдер выкатывается еще 10 раз. Я хочу создать рабочий процесс, чтобы конечный пользователь мог изменить слайдер / ссылку. Я создал функцию ниже, которая динамически создает мои "li" и "a" и работает. В конце концов я буду использовать переменные, чтобы получить "SRC" и т. Д.
У меня вопрос, я хотел бы сделать "для каждого", чтобы пройти через указанный каталог и захватить имена файлов, чтобы я мог создать новые "li" и "a" для каждого файла и получить свой "src" для " "динамически также.
Если я не сказал это правильно, я прошу прощения. Я новичок в JavaScript и программировании в целом. Я потратил довольно много времени, пытаясь понять это сам. Любая помощь / объяснение / направление будет принята с благодарностью.
<!DOCTYPE html>
<html>
<head></head>
<body>
<script>
document.body.onload = addElement;
function addElement() {
//run through a directory and grab URLs
// create a new li element
var newLi = document.createElement("li");
//create img
var newImg = document.createElement("img");
newImg.setAttribute("src", "Intranet_643x296.jpg");
newImg.setAttribute("height", "100%");
newImg.setAttribute("border-radius", "10px");
newImg.setAttribute("alt", "Einstein");
// Set its contents:
document.getElementById("ulimage").appendChild(newImg);
}
</script>
<ul id="ulimage"></ul>
</body>
</html>
2 ответа
Если вы хотите сделать это на стороне клиента, к сожалению, как ответил @erwan, это невозможно.
Также я предполагаю, что каталог находится на сервере?
Если так, то просто получите все имена файлов на стороне сервера, и тогда вы сможете использовать их в своем javascript.
ОБНОВИТЬ
Если вы используете PHP, то что-то вроде этого будет захватывать все в определенной директории
// Directory
$directory = $_SERVER['DOCUMENT_ROOT'] . '/images';
chdir($directory); // change directory (not necessary but retrieves only filenames)
// Get all files in directory
$images = glob('*'); // returns an array that you can use in a foreach loop
// also you should probably lookup the glob function (see below) to see the options
Смотрите документацию для Glob здесь Glob
Если вы хотите выбрать только определенные расширения, используйте шаблон
glob('*.{jpg, png}', GLOB_BRACE)
Надеюсь это поможет
Это невозможно! Вы не можете получить доступ к клиентской файловой системе по очевидной причине безопасности.