69 lines
1.5 KiB
PHP
69 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
header('Cache-Control: no-cache, must-revalidate');
|
||
|
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||
|
header('Content-type: application/json');
|
||
|
|
||
|
$images = array();
|
||
|
|
||
|
|
||
|
function scan_dir($dir) {
|
||
|
$ignored = array('.', '..', '.svn', '.htaccess');
|
||
|
|
||
|
$files = array();
|
||
|
foreach (scandir($dir) as $file) {
|
||
|
if (in_array($file, $ignored)) continue;
|
||
|
$files[$file] = filemtime($dir . '/' . $file);
|
||
|
}
|
||
|
|
||
|
arsort($files);
|
||
|
$files = array_keys($files);
|
||
|
|
||
|
return ($files) ? $files : false;
|
||
|
}
|
||
|
|
||
|
function imagelist($dir)
|
||
|
{
|
||
|
global $images;
|
||
|
|
||
|
//$stuffs = scandir($dir);
|
||
|
|
||
|
$stuffs = scan_dir($dir);
|
||
|
|
||
|
for ($i = 0; $i < sizeof($stuffs); $i++)
|
||
|
{
|
||
|
$farr = explode('.', $stuffs[$i]);
|
||
|
if ($stuffs[$i] != '.' && $stuffs[$i] != '..' && $farr[0] != 'thumb')
|
||
|
if (is_dir($stuffs[$i]))
|
||
|
imagelist($dir.'/'.$stuffs[$i]);
|
||
|
elseif (in_array(end($farr), array('gif', 'png', 'jpg', 'jpeg')))
|
||
|
{
|
||
|
// PATHS
|
||
|
$outdir = '/data/'.ltrim($dir, './').'/';
|
||
|
$img = $dir.'/'.$stuffs[$i];
|
||
|
$thumb = $dir.'/thumb.'.$stuffs[$i];
|
||
|
|
||
|
// THUMBNAIL
|
||
|
if (!file_exists($thumb))
|
||
|
{
|
||
|
$cthumb = new Imagick($img);
|
||
|
$cthumb->cropThumbnailImage(260, 260);
|
||
|
$cthumb->writeImage($thumb);
|
||
|
$cthumb->destroy();
|
||
|
}
|
||
|
|
||
|
// ADD TO LIST
|
||
|
array_push($images, array(
|
||
|
'image' => $outdir.rawurlencode($stuffs[$i]),
|
||
|
'thumb' => $outdir.'thumb.'.$stuffs[$i],
|
||
|
'folder' => ltrim($dir, './')
|
||
|
));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
imagelist('./uploads');
|
||
|
foreach(glob('./uploads/*', GLOB_ONLYDIR) as $dir)
|
||
|
imagelist($dir);
|
||
|
|
||
|
echo str_replace('\/', '/', json_encode($images));
|