/** * 加载管理文件插件 * */ public function mfile($key = '', $dir = './') { if ($key == '') { $this->error("没有文件"); } $FileService = D('File', 'Service'); $root = $FileService->getFile($key); $sdir = str_replace(' ', '/', $dir); $listfile = listFile($sdir, $root['dir']); $this->assign('files', $listfile); $this->assign('dir', $dir); $this->assign('root', $root); $this->display(); }
function getSrcOnlyFile($src, $test, $path = '') { $result = array(); $as = listFile($src . $path); $ts = listFile($test . $path); foreach ($as as $item) { $si = $src . $path . $item; $ti = $test . $path . $item; if (is_dir($si) && is_dir($ti)) { $result = array_merge($result, getSrcOnlyFile($src, $test, $path . $item . '/')); } else { if (is_file($si) && !is_file($ti)) { if (substr($si, -3) == '.js') { array_push($result, $path . $item); } } else { // print("error : $si"); } } } return $result; }
function listFile($dir) { $fileArray = array(); $cFileNameArray = array(); if ($handle = opendir($dir)) { while (($file = readdir($handle)) !== false) { if ($file != "." && $file != "..") { if (is_dir($dir . "/" . $file)) { $cFileNameArray = listFile($dir . "/" . $file); for ($i = 0; $i < count($cFileNameArray); $i++) { $fileArray[] = $cFileNameArray[$i]; } } else { $fileArray[] = $file; } } } return $fileArray; } else { echo "111"; } }
function getFilms(&$return, $paths = NULL) { $error = ""; $db = connectDB(); if (!isset($paths)) { if (defined("PATHS")) { $paths = unserialize(PATHS); } return false; } foreach ($paths as $path) { $path = str_replace('\\', '/', $path . '/'); //f*****g Windows $result = NULL; if (!listFile($result, $path)) { $error .= "Erreur sur l'ouverture du répértoire ('{$path}')\n"; continue; } //récupération de l'id de la source ou son ajout si nécessaire if (($source_id = getSourceId($db, $path)) === false) { $source_id = insertSource($db, $path); } $return = array(); foreach ($result as $row) { if (!getInfoOfFilm($row[RESULT_NAME], $title, $file_type)) { $error .= "Name is invalide " . $row[RESULT_NAME]; continue; } //récupération de l'id du type de fichier if (($file_type_id = getTypeId($db, $file_type)) === false) { //PARANOIA use default type id : 1 $file_type_id = 1; } $row[RESULT_PATH_CLEAR] = str_replace($path, "", $row[RESULT_PATH]); if (empty($row[RESULT_PATH_CLEAR])) { $row[RESULT_PATH_CLEAR] = "."; } //récupération de l'id de du fichier ou son ajout si nécessaire if (($file_id = getFile($db, $source_id, $row[RESULT_PATH_CLEAR], $row[RESULT_NAME], $file_type_id)) === false) { $file_id = insertFile($db, $source_id, $row[RESULT_PATH_CLEAR], $row[RESULT_NAME], $title, $file_type_id); } if ($title !== false) { // echo $error; $return[] = array($file_id, $title); } else { $error .= "Titre non trouvé pour le fichier ('{$row[RESULT_PATH]}{$row[RESULT_NAME]}')"; } } } if (empty($return)) { return false; } return true; }
/** * 文件处理服务 * @param string $Root,string $cmd,string $target * @return array */ public function mfile($ROOT, $cmd, $target) { switch ($cmd) { case 'init': return getArray('0', 'success', array('root' => getFileInfo('/', $ROOT), 'config' => array())); break; case 'ls': if (isset($_GET['target'])) { $target = $_GET['target']; } else { $target = ''; } $list = listFile($target, $ROOT); return getArray('0', 'success', array('files' => $list)); break; case 'rename': $name = $_GET['name']; if (file_exists($ROOT . $name)) { $res = false; $msg = 'file exist'; } else { $res = rename($ROOT . $target, $ROOT . $name); } if ($res) { return getArray('0', 'success', array('file' => getFileInfo($name, $ROOT))); } else { return getArray('1', $msg ? $msg : 'rename error'); } break; case 'rm': foreach ($target as $key => $path) { if (is_dir($ROOT . $path)) { $res = removeDir($ROOT . $path); } else { $res = unlink($ROOT . $path); } if (!$res) { break; } } if ($res) { return getArray('0', 'success'); } else { return getArray('1', 'romove error'); } break; case 'touch': if (!file_exists($ROOT . $target)) { file_put_contents($ROOT . $target, ''); $res = file_exists($ROOT . $target); } else { $res = false; $msg = 'file exist'; } if ($res) { return getArray('0', 'success', array('file' => getFileInfo($target, $ROOT))); } else { return getArray('1', $msg ? $msg : 'touch error'); } break; case 'mkdir': if (!file_exists($ROOT . $target)) { $res = mkdir($ROOT . $target); } else { $res = false; $msg = 'file exist'; } if ($res) { return getArray('0', 'success', array('file' => getFileInfo($target, $ROOT))); } else { return getArray('1', $msg ? $msg : 'mkdir error', array('file' => getFileInfo($target, $ROOT))); } break; case 'upload': include "Uploader.class.php"; $uploadConfig = array("savePath" => $ROOT . $target, "maxSize" => 200000, "allowFiles" => array(".rar", ".zip", ".7z", "tar", "gz", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", "", ".txt", ".pdf", ".bmp", ".gif", ".jpg", ".jpeg", ".png", ".psd", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", ".ogg", ".mov", ".wmv", ".mp4", ".webm")); $up = new Uploader("file", $uploadConfig); $info = $up->getFileInfo(); if ($info["state"] == 'SUCCESS') { return getArray('0', 'success', array('file' => getFileInfo($target . $info["name"], $ROOT))); } else { return getArray('1', $info["state"], array('file' => getFileInfo($target . $info["name"], $ROOT))); } break; case 'download': $path = $ROOT . $target; $info = getFileInfo($target, $ROOT); downloadFile($path, $info['name']); break; case 'info': return getArray('0', 'success', array('file' => getFileInfo($target, $ROOT))); break; default: return getArray('1', 'unknow command'); break; } /*switch*/ }
function listPath($path) { global $config; $path = fixPath($path); $path = rtrim($path, '/'); if (accessLevel($path) < 1) { return array('type' => 'nope', 'path' => $path); } if (is_dir($config['files'] . $path)) { return listDir($path); } if (is_file($config['files'] . $path)) { return listFile($path); } return list404(); }
error_reporting(E_ERROR | E_WARNING); date_default_timezone_set("Asia/chongqing"); global $CONFIG; $CONFIG = (include './config.php'); $ROOT = './files'; $cmd = getParam('cmd'); $target = getParam('target'); switch ($cmd) { case 'init': echo getJson('0', 'success', array('root' => getFileInfo('/', $ROOT), 'config' => array())); break; case 'ls': if (!$target) { $target = ''; } $list = listFile($target, $ROOT); echo getJson('0', 'success', array('files' => $list)); break; case 'rename': $name = getParam('name'); if (isPathIllegal($target, $CONFIG['allowFiles'])) { $res = false; $msg = 'filename Illegal'; } else { if (file_exists($ROOT . $name)) { $res = false; $msg = 'file exist'; } else { $res = rename($ROOT . $target, $ROOT . $name); } }
<?php error_reporting(E_ALL); header('Content-Type: text/html; charset=utf-8'); function listFile($x) { $files = scandir($x); foreach ($files as $arr) { if ($arr == '.' or $arr == '..') { echo ''; } else { echo $arr . '<br>'; } } } listFile(__DIR__);