You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

69 lines
1.5 KiB

<?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));