diff --git a/asset.php b/asset.php index 1b5e26c8..76bd2c1e 100644 --- a/asset.php +++ b/asset.php @@ -19,16 +19,29 @@ if (!array_key_exists('dir', $_REQUEST)) { $_REQUEST['dir'] = '.'; } -$tmpfile = tempnam('/tmp', 'osb-asset-'); -$contents = $repo->file_get_contents("{$_REQUEST['dir']}/{$_REQUEST['file']}"); +if (array_key_exists('list', $_REQUEST)) { + $contents = array(); + foreach ($repo->scandir($_REQUEST['dir']) as $f) { + if (substr($f, 0, 1) !== '.') { + $contents[] = array('name' => $f); + } + } -if ($contents === false) { - Header("HTTP/1.1 401 Permission denied"); - exit(0); + $mime_type = 'application/json; charset=utf-8'; + $contents = json_encode($contents); } +else { + $tmpfile = tempnam('/tmp', 'osb-asset-'); + $contents = $repo->file_get_contents("{$_REQUEST['dir']}/{$_REQUEST['file']}"); + + if ($contents === false) { + Header("HTTP/1.1 401 Permission denied"); + exit(0); + } -file_put_contents($tmpfile, $contents); -$mime_type = mime_content_type($tmpfile); + file_put_contents($tmpfile, $contents); + $mime_type = mime_content_type($tmpfile); +} Header("Content-Type: {$mime_type}; charset=utf-8"); print $contents;