내 웹 사이트는 /assets/photos/
폴더 에서 많은 사진을 제공하고 있습니다 . Javascript로 해당 폴더의 파일 목록을 어떻게 얻을 수 있습니까?
답변
현재 코드는 모든 파일을 나열하려는 서버 측에 있다고 가정하여 폴더의 모든 파일 목록을 제공합니다.
var fs = require('fs');
var files = fs.readdirSync('/assets/photos/');
답변
아니요, 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 [] 배열 사용
답변
클라이언트 측 파일의 경우 사용자의 로컬 디렉토리에있는 파일 목록을 가져올 수 없습니다.
사용자가 업로드 된 파일을 제공 한 경우 해당 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>
답변
지정된 폴더의 파일 이름 목록을 얻으려면 다음을 사용할 수 있습니다.
fs.readdir(directory_path, callback_function)
이렇게하면 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
을 비활성화 해야합니다 . 이는 사용하려는 솔루션이 아닐 수도 있음을 의미합니다. 제 경우에는 괜찮다고 생각했습니다.