/**
  * 加载管理文件插件
  * */
 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();
 }
예제 #2
0
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;
}
예제 #3
0
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";
    }
}
예제 #4
0
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;
}
예제 #5
0
 /**
  * 文件处理服务
  * @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*/
 }
예제 #6
0
파일: list.php 프로젝트: Dirbaio/TurboFile
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();
}
예제 #7
0
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);
            }
        }
예제 #8
0
파일: 4.php 프로젝트: ShefGena/homeworks
<?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__);