Web 在线文件管理器学习笔记与总结(17)复制文件 (18)剪切文件

(17)复制文件

① 复制文件通过copy($src,$dst) 来实现

② 检测目标目录是否存在,如果存在则继续检测目标目录中是否存在同名文件,如果不存在则复制成功

 

file.func.php 中添加:

/*

    复制文件

*/

function copyFile($filename,$dstname){

    if(file_exists($dstname)){

        if(file_exists($dstname.'/'.basename($filename))){

            return '存在同名文件';

        }else{

            if(copy($filename,$dstname.'/'.basename($filename))){

                return '文件复制成功';

            }else{

                return '文件复制失败';

            }

        }

    }else{

        return '目标目录不存在';

    }

}

file.func.php 完整代码:

<?php

/*

    转换字节大小

*/

function transByte($size){

    $arr = array('B','KB','MB','GB','TB','EB');

    $i = 0;

    while($size > 1024){

        $size /= 1024;

        $i++;

    }

    return round($size,2).' '.$arr[$i];

}



/*

    创建文件

*/

/*

注意:

createFile函数前面的正则表达式部分使用了 basename 函数,这个函数会过滤掉所有的 / 斜杠。

这样在文件名中任意输入 / 不会引起报错。

*/    

function createFile($filename){

    if(checkFilename(end(explode('/',$filename)))){

        //检测当前目录现是否存在同名文件

        if(!file_exists($filename)){

            //通过touch方法创建文件

            if(@touch($filename)){

                return '文件创建成功';

            }else{

                return '文件创建失败';

            }

        }else{

            return '文件已存在,请重命名后创建';

        }

    }else{

        return '非法文件名';

    }

}    



/*

    重命名文件

    @param newname string 重命名之后的文件名

    @param oldname string 重命名之前的文件名

*/    

function renameFile($oldname,$newname){

    if(checkFilename($newname)){

        $path = dirname($oldname);

        if(!file_exists($path.'/'.$newname)){

            if(rename($oldname,$path.'/'.$newname)){

                return '重命名成功';

            }else{

                return '重命名失败';

            }

        }else{

            return '文件名已存在,请重新命名';

        }

    }else{

        return '非法文件名';

    }

}    



/*

    检测文件名合法性

*/        

function checkFilename($filename){

    //验证文件名合法性,是否包含特殊字符 \ / : | * " ? < >

    $pattern = '/[\/,\*,<,>,\?\|,\\\\,:,"]/'; //     * < > | ? : "有效

    if(!preg_match($pattern, $filename)){

        return true;

    }else{

        return false;

    }    

}    



/*

    删除文件

*/    

function delFile($filename){

    if(unlink($filename)){

        return '文件成功删除';

    }else{

        return '文件删除失败';

    }

}



/*

    下载文件

*/    

function downFile($filename){

    header('content-disposition:attachment;filename=emperor_'.basename($filename));

    header('content-length:'.filesize($filename));

    readfile($filename);

}



/*

    复制文件

*/

function copyFile($filename,$dstname){

    if(file_exists($dstname)){

        if(file_exists($dstname.'/'.basename($filename))){

            return '存在同名文件';

        }else{

            if(copy($filename,$dstname.'/'.basename($filename))){

                return '文件复制成功';

            }else{

                return '文件复制失败';

            }

        }

    }else{

        return '目标目录不存在';

    }

}
View Code

index.php:

<?php 

require 'dir.func.php';

require 'file.func.php';

require 'common.func.php';

$path = 'file';

$path = @$_REQUEST['path']?@$_REQUEST['path']:$path;

$info = readDirectory($path);

if($info == NULL){

    echo '<script>alert("没有文件和目录"); </script>';

}

$act = @$_REQUEST['act'];

$filename = @$_REQUEST['filename'];

$dirname = @$_REQUEST['dirname'];

//跳转变量

$redirect = "index.php?path={$path}";

if($act == 'createFile'){

    //创建文件

    $mes = createFile($path.'/'.$filename);

    alertMes($mes,$redirect);

}else if($act == 'showContent'){

//查看文件内容

    $content=file_get_contents($filename);

    //echo "<textarea readonly='readonly' cols='100' rows='10'>{$content}</textarea>";

    //高亮显示PHP代码

    //高亮显示字符串中的PHP代码

    if(strlen($content)){

    $newContent=highlight_string($content,true);

    //高亮显示文件中的PHP代码

    //highlight_file($filename);

    $str=<<<EOF

    <table width='100%' bgcolor='pink' cellpadding='5' cellspacing="0" >

        <tr>

            <td>$newContent</td>

        </tr>

    </table>

EOF;

        echo $str;

    }else{

        alertMes("文件没有内容,请编辑再查看!",$redirect);

    }

}else if($act == 'editContent'){

    $content = file_get_contents($filename);

    $str=<<<EOF

    <form action='index.php?act=doEdit' method='post'>

    <textarea name='content'  cols='100' rows='10'>$content</textarea></br>

    <input type='hidden' name='filename' value='{$filename}'>

    <input type="hidden" name="path" value='$path'>

    <input type='submit' value='修改文件内容'>

    </form>

EOF;

    echo $str; 

}else if($act == 'doEdit'){

    //修改文件内容

    $content = $_POST['content'];

    if(file_put_contents($filename, $content)){

        $mes = '文件修改成功';

    }else if(!$content){

        $mes = '文件内容被清空';

    }else{

        $mes = '文件修改失败';

    }

    alertMes($mes,$redirect);

}else if($act == 'renameFile'){

    //重命名文件

    $str = <<<EOF

    <form action='index.php?act=doRename' method='post'>

        请填写新文件名:<input type="text" name="newname" placeholder="重命名">

        <input type="hidden" name="filename" value='$filename'>

        <input type="hidden" name="path" value='$path'>

    <input type='submit' value='重命名'>

    </form>        

EOF;

echo $str;

}else if($act == 'doRename'){

    //实现重命名操作

    $newname = $_POST['newname'];

    $mes = renameFile($filename,$newname);

    alertMes($mes,$redirect);

}else if($act == 'delFile'){

    $mes = delFile($filename);

    alertMes($mes,$redirect);

}else if($act == 'downFile'){

    downFile($filename);

}else if($act == 'copyFolder'){

    //复制文件夹

    $str = <<<EOF

    <form action='index.php?act=doCopyFolder' method='post'>

        请将文件夹复制到:<input type="text" name="dstname" placeholder="将文件夹复制到">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="dirname" value='$dirname'>

    <input type='submit' value='复制文件夹'>

    </form>        

EOF;

echo $str;    

}else if($act == 'doCopyFolder'){

    $dstname = $_REQUEST['dstname'];

    $mes = copyFolder($dirname,$path.'/'.$dstname.'/'.basename($dirname));

    alertMes($mes,$redirect);

}else if($act == 'renameFolder'){

    //重命名文件夹

    $str = <<<EOF

    <form action='index.php?act=doRenameFolder' method='post'>

        请填写新文件夹名:<input type="text" name="newname" placeholder="重命名">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="dirname" value='$dirname'>

    <input type='submit' value='重命名'>

    </form>        

EOF;

echo $str;

}else if($act == 'doRenameFolder'){

    $newname = $_POST['newname'];

    //echo $newname,'-------',$dirname,'-----------',$path;

    $mes = renameFolder($dirname,$path.'/'.$newname);

    alertMes($mes,$redirect);

}else if($act == 'cutFolder'){

    //剪切文件夹

    $str = <<<EOF

    <form action='index.php?act=doCutFolder' method='post'>

        请将文件夹剪切到:<input type="text" name="dstname" placeholder="将文件夹剪切到">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="dirname" value='$dirname'>

    <input type='submit' value='剪切文件夹'>

    </form>        

EOF;

echo $str;        

}else if($act == 'doCutFolder'){

    $dstname = $_REQUEST['dstname'];

    $mes = cutFolder($dirname,$path.'/'.$dstname);

    alertMes($mes,$redirect);

}else if($act == 'delFolder'){

    //删除文件夹

    $mes = doDelFolder($dirname);

    alertMes($mes,$redirect);

}else if($act == 'copyFile'){

    //复制文件

    //复制文件夹

    $str = <<<EOF

    <form action='index.php?act=doCopyFile' method='post'>

        请将文件复制到:<input type="text" name="dstname" placeholder="将文件复制到">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="filename" value='$filename'>

    <input type='submit' value='复制文件'>

    </form>        

EOF;

echo $str;        

}else if($act == 'doCopyFile'){

    $dstname = $_REQUEST['dstname'];

    $mes = copyFile($filename,$path.'/'.$dstname);

    alertMes($mes,$redirect);

}

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<link rel="stylesheet" href="cikonss.css" />

<link rel="stylesheet" href="common.css" />

<script src="jquery-1.8.3.min.js"></script>

<script src="jquery-ui-1.11.3/jquery-ui.min.js"></script>

<link rel="stylesheet" href="jquery-ui-1.11.3/jquery-ui.min.css" />

</head>

<body>

<div id="showDetail" style="display:none"><img src="" alt="" id="showImg"></div>

<h1>在线文件管理器</h1>

<div id="top">

    <ul id="navi">

        <li><a href="index.php" title="主目录"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-home"></span></span></a></li>

        <li><a href="#" onclick="show('createFile')" title="新建文件" ><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-file"></span></span></a></li>

        <li><a href="#" title="新建文件夹"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-folder"></span></span></a></li>

        <li><a href="#" title="上传文件"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-upload"></span></span></a></li>

        <?php 

            $back = $path =='file'?'file':dirname($path);

        ?>

        <li><a href="javascript:void(0)" onclick='goBack("<?php echo $back;?>")' title="返回上级目录"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-arrowLeft"></span></span></a></li>

    </ul>

</div>

<form action="index.php" method="post" enctype="multipart/form-data">

<table width='100%' border='1' cellpadding="5" cellspacing="0" bgcolor="#abcdef" align="center">

    <tr id="createFolder"  style="display:none;">

        <td>请输入文件夹名称</td>

        <td >

            <input type="text" name="dirname" />

            <input type="hidden" name="path"  value="<?php echo $path;?>"/>

            <input type="submit"  name="act"  value="创建文件夹"/>

        </td>

    </tr>

    <tr id="createFile"  style="display:none;">

        <td>请输入文件名称</td>

        <td >

            <input type="text"  name="filename" />

            <input type="hidden" name="path" value="<?php echo $path;?>"/>

            <input type="hidden" name='act' value='createFile'/>

            <input type="submit" value="创建文件" />    

        </td>

    </tr>

    <tr id="uploadFile" style="display:none;">

        <td >请选择要上传的文件</td>

        <td ><input type="file" name="myFile" />

            <input type="submit" name="act" value="上传文件" />    

        </td>

    </tr>

    <tr align="center">

        <td>编号</td>

        <td>名称</td>

        <td>类型</td>

        <td>大小</td>

        <td>可读</td>

        <td>可写</td>

        <td>可执行</td>

        <td>创建时间</td>

        <td>修改时间</td>

        <td>访问时间</td>

        <td>操作</td>

    </tr>

    <?php 

        if(@$info['file']){

            $i = 1;

            foreach($info['file'] as $val){

                $p = $path.'/'.$val;

    ?>

    <tr align="center">

        <td><?php echo $i;?></td>

        <td><?php echo $val;?></td>

        <td><?php $src = filetype($p) == 'file'?'file_ico.png':'folder_ico.png';?><img src="images/<?php echo $src;?>" alt="" title='文件'></td>

        <td><?php echo transByte(filesize($p));?></td>

        <td><?php $src = is_readable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可读'></td>

        <td><?php $src = is_writeable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php $src = is_executable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php echo date('Y-m-d H:i:s',filectime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',filemtime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',fileatime($p));?></td>

        <td>

            <?php 

                //得到文件扩展名

                $ext = strtolower(end(explode('.',$val)));

                $imageExt = array('gif','jpg','png','jpeg');

                if(in_array($ext, $imageExt)){ ?>

                <a href="javascript:void(0)" onclick='showDetail("<?php echo $val;?>","<?php echo $p;?>")' title='查看'><img src="images/show.png" class="small" alt=""></a>

                

            <?php    }else{ ?>

                <a href="index.php?act=showContent&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='查看'><img src="images/show.png" class="small" alt=""></a>

            <?php

                }

            ?>

            

            <a href="index.php?act=editContent&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='修改'><img src="images/edit.png" class="small" alt=""></a>

            <a href="index.php?act=renameFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='重命名'><img src="images/rename.png" class="small" alt=""></a>

            <a href="index.php?act=copyFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='复制'><img src="images/copy.png" class="small" alt=""></a>

            <a href="" title='剪切'><img src="images/cut.png" class="small" alt=""></a>

            <a href="javascript:void(0)" onclick="delFile('<?php echo $p;?>')" title='删除'><img src="images/delete.png" class="small" alt=""></a>

            <a href="index.php?act=downFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='下载'><img src="images/download.png" class="small" alt=""></a>

        </td>

    </tr>

    <?php            

                $i++;

            }

        }

    ?>

    <!--读取目录-->

    <?php 

        if(@$info['dir']){

            $i = 1;

            foreach($info['dir'] as $val){

                $p = $path.'/'.$val;

    ?>

    <tr align="center">

        <td><?php echo $i;?></td>

        <td><?php echo $val;?></td>

        <td><?php $src = filetype($p) == 'file'?'file_ico.png':'folder_ico.png';?><img src="images/<?php echo $src;?>" alt="" title='文件'></td>

        <td><?php //$size = 0; echo transByte(dirSize($p));?></td>

        <td><?php $src = is_readable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可读'></td>

        <td><?php $src = is_writeable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php $src = is_executable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php echo date('Y-m-d H:i:s',filectime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',filemtime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',fileatime($p));?></td>

        <td>

            <a href="index.php?path=<?php echo $p;?>" title='查看'><img src="images/show.png" class="small" alt=""></a>

            <a href="index.php?act=renameFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title='重命名'><img src="images/rename.png" class="small" alt=""></a>

            <a href="index.php?act=copyFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title='复制'><img src="images/copy.png" class="small" alt=""></a>

            <a href="index.php?act=cutFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title='剪切'><img src="images/cut.png" class="small" alt=""></a>

            <a href="javascript:void(0)" onclick="delFolder('<?php echo $p;?>','<?php echo $path;?>')" title='删除'><img src="images/delete.png" class="small" alt=""></a>

            <a href="index.php?act=downFile&filename=<?php echo $p;?>" title='下载'><img src="images/download.png" class="small" alt=""></a>

        </td>

    </tr>

    <?php            

                $i++;

            }

        }

    ?>    

</table>

</form>

<script src='common.js'></script>

</body>

</html>
View Code

 

 

(18)剪切文件

① 剪切文件通过rename($oldname,$newname) 来实现

② 检测目标目录是否存在,如果存在则继续检测目标目录中是否存在同名文件,如果不存在则剪切成功

(注:只需要把复制文件的 copy 函数改成 rename 函数,再修改文字信息即可)

file.func.php 中添加:

/*

    剪切文件

*/

function cutFile($filename,$dstname){

    if(file_exists($dstname)){

        if(file_exists($dstname.'/'.basename($filename))){

            return '存在同名文件';

        }else{

            if(rename($filename,$dstname.'/'.basename($filename))){

                return '文件剪切成功';

            }else{

                return '文件剪切失败';

            }

        }

    }else{

        return '目标目录不存在';

    }

}

file.func.php 完整代码:

<?php

/*

    转换字节大小

*/

function transByte($size){

    $arr = array('B','KB','MB','GB','TB','EB');

    $i = 0;

    while($size > 1024){

        $size /= 1024;

        $i++;

    }

    return round($size,2).' '.$arr[$i];

}



/*

    创建文件

*/

/*

注意:

createFile函数前面的正则表达式部分使用了 basename 函数,这个函数会过滤掉所有的 / 斜杠。

这样在文件名中任意输入 / 不会引起报错。

*/    

function createFile($filename){

    if(checkFilename(end(explode('/',$filename)))){

        //检测当前目录现是否存在同名文件

        if(!file_exists($filename)){

            //通过touch方法创建文件

            if(@touch($filename)){

                return '文件创建成功';

            }else{

                return '文件创建失败';

            }

        }else{

            return '文件已存在,请重命名后创建';

        }

    }else{

        return '非法文件名';

    }

}    



/*

    重命名文件

    @param newname string 重命名之后的文件名

    @param oldname string 重命名之前的文件名

*/    

function renameFile($oldname,$newname){

    if(checkFilename($newname)){

        $path = dirname($oldname);

        if(!file_exists($path.'/'.$newname)){

            if(rename($oldname,$path.'/'.$newname)){

                return '重命名成功';

            }else{

                return '重命名失败';

            }

        }else{

            return '文件名已存在,请重新命名';

        }

    }else{

        return '非法文件名';

    }

}    



/*

    检测文件名合法性

*/        

function checkFilename($filename){

    //验证文件名合法性,是否包含特殊字符 \ / : | * " ? < >

    $pattern = '/[\/,\*,<,>,\?\|,\\\\,:,"]/'; //     * < > | ? : "有效

    if(!preg_match($pattern, $filename)){

        return true;

    }else{

        return false;

    }    

}    



/*

    删除文件

*/    

function delFile($filename){

    if(unlink($filename)){

        return '文件成功删除';

    }else{

        return '文件删除失败';

    }

}



/*

    下载文件

*/    

function downFile($filename){

    header('content-disposition:attachment;filename=emperor_'.basename($filename));

    header('content-length:'.filesize($filename));

    readfile($filename);

}



/*

    复制文件

*/

function copyFile($filename,$dstname){

    if(file_exists($dstname)){

        if(file_exists($dstname.'/'.basename($filename))){

            return '存在同名文件';

        }else{

            if(copy($filename,$dstname.'/'.basename($filename))){

                return '文件复制成功';

            }else{

                return '文件复制失败';

            }

        }

    }else{

        return '目标目录不存在';

    }

}



/*

    剪切文件

*/

function cutFile($filename,$dstname){

    if(file_exists($dstname)){

        if(file_exists($dstname.'/'.basename($filename))){

            return '存在同名文件';

        }else{

            if(rename($filename,$dstname.'/'.basename($filename))){

                return '文件剪切成功';

            }else{

                return '文件剪切失败';

            }

        }

    }else{

        return '目标目录不存在';

    }

}
View Code

index.php:

<?php 

require 'dir.func.php';

require 'file.func.php';

require 'common.func.php';

$path = 'file';

$path = @$_REQUEST['path']?@$_REQUEST['path']:$path;

$info = readDirectory($path);

if($info == NULL){

    echo '<script>alert("没有文件和目录"); </script>';

}

$act = @$_REQUEST['act'];

$filename = @$_REQUEST['filename'];

$dirname = @$_REQUEST['dirname'];

//跳转变量

$redirect = "index.php?path={$path}";

if($act == 'createFile'){

    //创建文件

    $mes = createFile($path.'/'.$filename);

    alertMes($mes,$redirect);

}else if($act == 'showContent'){

//查看文件内容

    $content=file_get_contents($filename);

    //echo "<textarea readonly='readonly' cols='100' rows='10'>{$content}</textarea>";

    //高亮显示PHP代码

    //高亮显示字符串中的PHP代码

    if(strlen($content)){

    $newContent=highlight_string($content,true);

    //高亮显示文件中的PHP代码

    //highlight_file($filename);

    $str=<<<EOF

    <table width='100%' bgcolor='pink' cellpadding='5' cellspacing="0" >

        <tr>

            <td>$newContent</td>

        </tr>

    </table>

EOF;

        echo $str;

    }else{

        alertMes("文件没有内容,请编辑再查看!",$redirect);

    }

}else if($act == 'editContent'){

    $content = file_get_contents($filename);

    $str=<<<EOF

    <form action='index.php?act=doEdit' method='post'>

    <textarea name='content'  cols='100' rows='10'>$content</textarea></br>

    <input type='hidden' name='filename' value='{$filename}'>

    <input type="hidden" name="path" value='$path'>

    <input type='submit' value='修改文件内容'>

    </form>

EOF;

    echo $str; 

}else if($act == 'doEdit'){

    //修改文件内容

    $content = $_POST['content'];

    if(file_put_contents($filename, $content)){

        $mes = '文件修改成功';

    }else if(!$content){

        $mes = '文件内容被清空';

    }else{

        $mes = '文件修改失败';

    }

    alertMes($mes,$redirect);

}else if($act == 'renameFile'){

    //重命名文件

    $str = <<<EOF

    <form action='index.php?act=doRename' method='post'>

        请填写新文件名:<input type="text" name="newname" placeholder="重命名">

        <input type="hidden" name="filename" value='$filename'>

        <input type="hidden" name="path" value='$path'>

    <input type='submit' value='重命名'>

    </form>        

EOF;

echo $str;

}else if($act == 'doRename'){

    //实现重命名操作

    $newname = $_POST['newname'];

    $mes = renameFile($filename,$newname);

    alertMes($mes,$redirect);

}else if($act == 'delFile'){

    $mes = delFile($filename);

    alertMes($mes,$redirect);

}else if($act == 'downFile'){

    downFile($filename);

}else if($act == 'copyFolder'){

    //复制文件夹

    $str = <<<EOF

    <form action='index.php?act=doCopyFolder' method='post'>

        请将文件夹复制到:<input type="text" name="dstname" placeholder="将文件夹复制到">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="dirname" value='$dirname'>

    <input type='submit' value='复制文件夹'>

    </form>        

EOF;

echo $str;    

}else if($act == 'doCopyFolder'){

    $dstname = $_REQUEST['dstname'];

    $mes = copyFolder($dirname,$path.'/'.$dstname.'/'.basename($dirname));

    alertMes($mes,$redirect);

}else if($act == 'renameFolder'){

    //重命名文件夹

    $str = <<<EOF

    <form action='index.php?act=doRenameFolder' method='post'>

        请填写新文件夹名:<input type="text" name="newname" placeholder="重命名">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="dirname" value='$dirname'>

    <input type='submit' value='重命名'>

    </form>        

EOF;

echo $str;

}else if($act == 'doRenameFolder'){

    $newname = $_POST['newname'];

    //echo $newname,'-------',$dirname,'-----------',$path;

    $mes = renameFolder($dirname,$path.'/'.$newname);

    alertMes($mes,$redirect);

}else if($act == 'cutFolder'){

    //剪切文件夹

    $str = <<<EOF

    <form action='index.php?act=doCutFolder' method='post'>

        请将文件夹剪切到:<input type="text" name="dstname" placeholder="将文件夹剪切到">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="dirname" value='$dirname'>

    <input type='submit' value='剪切文件夹'>

    </form>        

EOF;

echo $str;        

}else if($act == 'doCutFolder'){

    $dstname = $_REQUEST['dstname'];

    $mes = cutFolder($dirname,$path.'/'.$dstname);

    alertMes($mes,$redirect);

}else if($act == 'delFolder'){

    //删除文件夹

    $mes = doDelFolder($dirname);

    alertMes($mes,$redirect);

}else if($act == 'copyFile'){

    //复制文件

    //复制文件夹

    $str = <<<EOF

    <form action='index.php?act=doCopyFile' method='post'>

        请将文件复制到:<input type="text" name="dstname" placeholder="将文件复制到">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="filename" value='$filename'>

    <input type='submit' value='复制文件'>

    </form>        

EOF;

echo $str;        

}else if($act == 'doCopyFile'){

    $dstname = $_REQUEST['dstname'];

    $mes = copyFile($filename,$path.'/'.$dstname);

    alertMes($mes,$redirect);

}else if($act == 'cutFile'){

    //复制文件

    //复制文件夹

    $str = <<<EOF

    <form action='index.php?act=doCutFile' method='post'>

        请将文件剪切到:<input type="text" name="dstname" placeholder="将文件剪切到">

        <input type="hidden" name="path" value='$path'>

        <input type="hidden" name="filename" value='$filename'>

    <input type='submit' value='剪切文件'>

    </form>        

EOF;

echo $str;        

}else if($act == 'doCutFile'){

    $dstname = $_REQUEST['dstname'];

    $mes = cutFile($filename,$path.'/'.$dstname);

    alertMes($mes,$redirect);

}

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<link rel="stylesheet" href="cikonss.css" />

<link rel="stylesheet" href="common.css" />

<script src="jquery-1.8.3.min.js"></script>

<script src="jquery-ui-1.11.3/jquery-ui.min.js"></script>

<link rel="stylesheet" href="jquery-ui-1.11.3/jquery-ui.min.css" />

</head>

<body>

<div id="showDetail" style="display:none"><img src="" alt="" id="showImg"></div>

<h1>在线文件管理器</h1>

<div id="top">

    <ul id="navi">

        <li><a href="index.php" title="主目录"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-home"></span></span></a></li>

        <li><a href="#" onclick="show('createFile')" title="新建文件" ><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-file"></span></span></a></li>

        <li><a href="#" title="新建文件夹"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-folder"></span></span></a></li>

        <li><a href="#" title="上传文件"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-upload"></span></span></a></li>

        <?php 

            $back = $path =='file'?'file':dirname($path);

        ?>

        <li><a href="javascript:void(0)" onclick='goBack("<?php echo $back;?>")' title="返回上级目录"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-arrowLeft"></span></span></a></li>

    </ul>

</div>

<form action="index.php" method="post" enctype="multipart/form-data">

<table width='100%' border='1' cellpadding="5" cellspacing="0" bgcolor="#abcdef" align="center">

    <tr id="createFolder"  style="display:none;">

        <td>请输入文件夹名称</td>

        <td >

            <input type="text" name="dirname" />

            <input type="hidden" name="path"  value="<?php echo $path;?>"/>

            <input type="submit"  name="act"  value="创建文件夹"/>

        </td>

    </tr>

    <tr id="createFile"  style="display:none;">

        <td>请输入文件名称</td>

        <td >

            <input type="text"  name="filename" />

            <input type="hidden" name="path" value="<?php echo $path;?>"/>

            <input type="hidden" name='act' value='createFile'/>

            <input type="submit" value="创建文件" />    

        </td>

    </tr>

    <tr id="uploadFile" style="display:none;">

        <td >请选择要上传的文件</td>

        <td ><input type="file" name="myFile" />

            <input type="submit" name="act" value="上传文件" />    

        </td>

    </tr>

    <tr align="center">

        <td>编号</td>

        <td>名称</td>

        <td>类型</td>

        <td>大小</td>

        <td>可读</td>

        <td>可写</td>

        <td>可执行</td>

        <td>创建时间</td>

        <td>修改时间</td>

        <td>访问时间</td>

        <td>操作</td>

    </tr>

    <?php 

        if(@$info['file']){

            $i = 1;

            foreach($info['file'] as $val){

                $p = $path.'/'.$val;

    ?>

    <tr align="center">

        <td><?php echo $i;?></td>

        <td><?php echo $val;?></td>

        <td><?php $src = filetype($p) == 'file'?'file_ico.png':'folder_ico.png';?><img src="images/<?php echo $src;?>" alt="" title='文件'></td>

        <td><?php echo transByte(filesize($p));?></td>

        <td><?php $src = is_readable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可读'></td>

        <td><?php $src = is_writeable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php $src = is_executable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php echo date('Y-m-d H:i:s',filectime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',filemtime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',fileatime($p));?></td>

        <td>

            <?php 

                //得到文件扩展名

                $ext = strtolower(end(explode('.',$val)));

                $imageExt = array('gif','jpg','png','jpeg');

                if(in_array($ext, $imageExt)){ ?>

                <a href="javascript:void(0)" onclick='showDetail("<?php echo $val;?>","<?php echo $p;?>")' title='查看'><img src="images/show.png" class="small" alt=""></a>

                

            <?php    }else{ ?>

                <a href="index.php?act=showContent&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='查看'><img src="images/show.png" class="small" alt=""></a>

            <?php

                }

            ?>

            

            <a href="index.php?act=editContent&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='修改'><img src="images/edit.png" class="small" alt=""></a>

            <a href="index.php?act=renameFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='重命名'><img src="images/rename.png" class="small" alt=""></a>

            <a href="index.php?act=copyFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='复制'><img src="images/copy.png" class="small" alt=""></a>

            <a href="index.php?act=cutFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='剪切'><img src="images/cut.png" class="small" alt=""></a>

            <a href="javascript:void(0)" onclick="delFile('<?php echo $p;?>')" title='删除'><img src="images/delete.png" class="small" alt=""></a>

            <a href="index.php?act=downFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title='下载'><img src="images/download.png" class="small" alt=""></a>

        </td>

    </tr>

    <?php            

                $i++;

            }

        }

    ?>

    <!--读取目录-->

    <?php 

        if(@$info['dir']){

            $i = 1;

            foreach($info['dir'] as $val){

                $p = $path.'/'.$val;

    ?>

    <tr align="center">

        <td><?php echo $i;?></td>

        <td><?php echo $val;?></td>

        <td><?php $src = filetype($p) == 'file'?'file_ico.png':'folder_ico.png';?><img src="images/<?php echo $src;?>" alt="" title='文件'></td>

        <td><?php //$size = 0; echo transByte(dirSize($p));?></td>

        <td><?php $src = is_readable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可读'></td>

        <td><?php $src = is_writeable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php $src = is_executable($p)?'correct.png':'error.png';?><img src="images/<?php echo $src;?>" class="small" alt="" title='可写'></td>

        <td><?php echo date('Y-m-d H:i:s',filectime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',filemtime($p));?></td>

        <td><?php echo date('Y-m-d H:i:s',fileatime($p));?></td>

        <td>

            <a href="index.php?path=<?php echo $p;?>" title='查看'><img src="images/show.png" class="small" alt=""></a>

            <a href="index.php?act=renameFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title='重命名'><img src="images/rename.png" class="small" alt=""></a>

            <a href="index.php?act=copyFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title='复制'><img src="images/copy.png" class="small" alt=""></a>

            <a href="index.php?act=cutFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title='剪切'><img src="images/cut.png" class="small" alt=""></a>

            <a href="javascript:void(0)" onclick="delFolder('<?php echo $p;?>','<?php echo $path;?>')" title='删除'><img src="images/delete.png" class="small" alt=""></a>

            <a href="index.php?act=downFile&filename=<?php echo $p;?>" title='下载'><img src="images/download.png" class="small" alt=""></a>

        </td>

    </tr>

    <?php            

                $i++;

            }

        }

    ?>    

</table>

</form>

<script src='common.js'></script>

</body>

</html>
View Code

 

你可能感兴趣的:(学习笔记)