57 lines
1.2 KiB
PHP
57 lines
1.2 KiB
PHP
<?php
|
|
$dir = "Home";
|
|
|
|
// Run the recursive function
|
|
$response = scan($dir);
|
|
|
|
// This function scans the files folder recursively, and builds a large array
|
|
function scan($dir){
|
|
|
|
$files = array();
|
|
|
|
// Is there actually such a folder/file?
|
|
if(file_exists($dir)){
|
|
|
|
foreach(scandir($dir) as $f) {
|
|
|
|
if(!$f || $f[0] == '.') {
|
|
continue; // Ignore hidden files
|
|
}
|
|
|
|
if(is_dir($dir . '/' . $f)) {
|
|
// Remove Synology Temp-Folders, if they exists!
|
|
if($f != '@eaDir') {
|
|
// The path is a folder
|
|
$files[] = array(
|
|
"name" => $f,
|
|
"type" => "folder",
|
|
"path" => $dir . '/' . $f,
|
|
"items" => scan($dir . '/' . $f) // Recursively get the contents of the folder
|
|
);
|
|
}
|
|
}
|
|
else if (is_file($dir . '/' . $f)) {
|
|
// It is a file
|
|
$files[] = array(
|
|
"name" => $f,
|
|
"type" => "file",
|
|
"path" => $dir . '/' . $f,
|
|
"size" => filesize($dir . '/' . $f) // Gets the size of this file
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
return $files;
|
|
}
|
|
|
|
// Output the directory listing as JSON
|
|
header('Content-type: application/json');
|
|
|
|
echo json_encode(array(
|
|
"name" => basename($dir),
|
|
"type" => "folder",
|
|
"path" => $dir,
|
|
"items" => $response
|
|
)); |