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.
		
		
		
		
		
			
		
			
				
					
					
						
							92 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							92 lines
						
					
					
						
							2.5 KiB
						
					
					
				<?php | 
						|
/** | 
						|
 * 获取已上传的文件列表 | 
						|
 * User: Jinqn | 
						|
 * Date: 14-04-09 | 
						|
 * Time: 上午10:17 | 
						|
 */ | 
						|
include "Uploader.class.php"; | 
						|
 | 
						|
/* 判断类型 */ | 
						|
switch ($_GET['action']) { | 
						|
    /* 列出文件 */ | 
						|
    case 'listfile': | 
						|
        $allowFiles = $CONFIG['fileManagerAllowFiles']; | 
						|
        $listSize = $CONFIG['fileManagerListSize']; | 
						|
        $path = $CONFIG['fileManagerListPath']; | 
						|
        break; | 
						|
    /* 列出图片 */ | 
						|
    case 'listimage': | 
						|
    default: | 
						|
        $allowFiles = $CONFIG['imageManagerAllowFiles']; | 
						|
        $listSize = $CONFIG['imageManagerListSize']; | 
						|
        $path = $CONFIG['imageManagerListPath']; | 
						|
} | 
						|
$allowFiles = substr(str_replace(".", "|", join("", $allowFiles)), 1); | 
						|
 | 
						|
/* 获取参数 */ | 
						|
$size = isset($_GET['size']) ? htmlspecialchars($_GET['size']) : $listSize; | 
						|
$start = isset($_GET['start']) ? htmlspecialchars($_GET['start']) : 0; | 
						|
$end = $start + $size; | 
						|
 | 
						|
/* 获取文件列表 */ | 
						|
$path = $_SERVER['DOCUMENT_ROOT'] . (substr($path, 0, 1) == "/" ? "":"/") . $path; | 
						|
$files = getfiles($path, $allowFiles); | 
						|
if (!count($files)) { | 
						|
    return json_encode(array( | 
						|
        "state" => "no match file", | 
						|
        "list" => array(), | 
						|
        "start" => $start, | 
						|
        "total" => count($files) | 
						|
    )); | 
						|
} | 
						|
 | 
						|
/* 获取指定范围的列表 */ | 
						|
$len = count($files); | 
						|
for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--){ | 
						|
    $list[] = $files[$i]; | 
						|
} | 
						|
//倒序 | 
						|
//for ($i = $end, $list = array(); $i < $len && $i < $end; $i++){ | 
						|
//    $list[] = $files[$i]; | 
						|
//} | 
						|
 | 
						|
/* 返回数据 */ | 
						|
$result = json_encode(array( | 
						|
    "state" => "SUCCESS", | 
						|
    "list" => $list, | 
						|
    "start" => $start, | 
						|
    "total" => count($files) | 
						|
)); | 
						|
 | 
						|
return $result; | 
						|
 | 
						|
 | 
						|
/** | 
						|
 * 遍历获取目录下的指定类型的文件 | 
						|
 * @param $path | 
						|
 * @param array $files | 
						|
 * @return array | 
						|
 */ | 
						|
function getfiles($path, $allowFiles, &$files = array()) | 
						|
{ | 
						|
    if (!is_dir($path)) return null; | 
						|
    if(substr($path, strlen($path) - 1) != '/') $path .= '/'; | 
						|
    $handle = opendir($path); | 
						|
    while (false !== ($file = readdir($handle))) { | 
						|
        if ($file != '.' && $file != '..') { | 
						|
            $path2 = $path . $file; | 
						|
            if (is_dir($path2)) { | 
						|
                getfiles($path2, $allowFiles, $files); | 
						|
            } else { | 
						|
                if (preg_match("/\.(".$allowFiles.")$/i", $file)) { | 
						|
                    $files[] = array( | 
						|
                        'url'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])), | 
						|
                        'mtime'=> filemtime($path2) | 
						|
                    ); | 
						|
                } | 
						|
            } | 
						|
        } | 
						|
    } | 
						|
    return $files; | 
						|
} |