php 文件管理器

 需求分析:

Web应用中,若添加一个类似Windows文件管理器的功能,会让用户在打开后有一种很熟悉的感觉,不仅使得Web应用对文件的管理更加的直观,而且对大多数用户来说,会更容易操作使用,增强了用户的体验。

接下来,通过PHP中的文件目录技术实现文件管理器的功能。

设计:

1ini_set(‘open_basedir’,__DIR__); 通过‘open_basedir’,__DIR__限制只能访问其所在的目录

2rewinddir

3opendirreaddirclosedir

4fopenfreadfclose

5copyrenameunlink

参考:

PHP文件目录操作

php 文件管理器_第1张图片

 

array(),'file'=>array());
    //从目录总读取文件
    while(false !==($file_name = readdir($handle)))
    {
        //除去上级目录和本级目录
        if($file_name != '.' && $file_name != '..')
        {
            //文件全路径
            $file_path = "$path/$file_name";
            //文件类型
            $file_type = filetype($file_path);
            //判断,文件类型是文件或者目录
            if(!in_array($file_type,array('file','dir')))
            {
                continue;
            }
            //数组填入值
            $list[$file_type][] = array(
                'file_name'=>$file_name,
                'file_path'=>$file_path,
                'file_size'=>round(filesize($file_path)/1024),
                'file_time'=>date('Y/m/d H:i:s',filemtime($file_path)),
            );
        }
    }
    //释放句柄
    closedir($handle);
    return $list;
}
//处理操作
$action = isset($_GET['a'])?$_GET['a']:'';
//根据操作动作,执行相应程序
switch ($action)
{
    //返回上一级
    case 'prev':
        $path = dirname($path);
        break;
    //复制
    case 'copy':
        if($file)
        {
            if(file_exists("$path/$file.txt"))
            {
                die('文件名冲突,复制失败');
            }
            if(!copy("$path/$file","$path/$file.txt"))
            {
                die('复制文件失败');
            }
        }
        break;
    //删除
    case 'del':
        if($file)
        {
            unlink("$path/$file");
        }
        break;
    //重命名
    case 'rename':
        if(isset($_POST['rename']))
        {
            $target = isset($_POST['target'])?trim($_POST['target']):'';
            if($file && $target)
            {
                if(file_exists("$path/$target"))
                {
                    die('目标文件已存在');
                }
                rename("$path/$file","$path/$target");
                header('Location:?path='.$path);
                die;
            }
 
        }
        break;
 
}
 
$file_list = getFileList($path);
 
?>
 


    
    文件管理器
    




重命名为:
图标 名称 修改日期 大小 路径 操作
- 打开
KB 重命名   复制   删除

php 文件管理器_第2张图片

 

你可能感兴趣的:(PHP,php,开发语言)