In PHP è semplice ottenere il listato di una directory in formato JSON.
La soluzione è la seguente:
function my_get_directory_listing($dirname) {
$listing = [];
$dir = $_SERVER['DOCUMENT_ROOT'] . $dirname;
if(!is_dir($dir) || !is_readable($dir)) {
return $listing;
}
$files = array_diff(scandir($dir), ['..', '.']);
$finfo = finfo_open(FILEINFO_MIME_TYPE);
foreach($files as $file) {
$mime = finfo_file($finfo, $dir . '/' . $file);
$data = [
'src' => $dirname . '/' . $file,
'type' => $mime
];
$listing[] = $data;
}
return json_encode($listing);
}
header('Content-Type: application/json');
echo my_get_directory_listing('/files');
exit;