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 ‘目标目录不存在‘;
    }
}

index.php:

<?php
require ‘dir.func.php‘;
require ‘file.func.php‘;
require ‘common.func.php‘;
$path = ‘file‘;
$path = @$_REQUEST[‘path‘][email protected]$_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=""  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;?>"  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"  title=‘可读‘></td>
        <td><?php $src = is_writeable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  title=‘可写‘></td>
        <td><?php $src = is_executable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  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" ></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" ></a>
            <?php
                }
            ?>

            <a href="index.php?act=editContent&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘修改‘><img src="images/edit.png" class="small" ></a>
            <a href="index.php?act=renameFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘重命名‘><img src="images/rename.png" class="small" ></a>
            <a href="index.php?act=copyFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘复制‘><img src="images/copy.png" class="small" ></a>
            <a href="" title=‘剪切‘><img src="images/cut.png" class="small" ></a>
            <a href="javascript:void(0)" onclick="delFile(‘<?php echo $p;?>‘)" title=‘删除‘><img src="images/delete.png" class="small" ></a>
            <a href="index.php?act=downFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘下载‘><img src="images/download.png" class="small" ></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;?>"  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"  title=‘可读‘></td>
        <td><?php $src = is_writeable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  title=‘可写‘></td>
        <td><?php $src = is_executable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  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" ></a>
            <a href="index.php?act=renameFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title=‘重命名‘><img src="images/rename.png" class="small" ></a>
            <a href="index.php?act=copyFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title=‘复制‘><img src="images/copy.png" class="small" ></a>
            <a href="index.php?act=cutFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title=‘剪切‘><img src="images/cut.png" class="small" ></a>
            <a href="javascript:void(0)" onclick="delFolder(‘<?php echo $p;?>‘,‘<?php echo $path;?>‘)" title=‘删除‘><img src="images/delete.png" class="small" ></a>
            <a href="index.php?act=downFile&filename=<?php echo $p;?>" title=‘下载‘><img src="images/download.png" class="small" ></a>
        </td>
    </tr>
    <?php
                $i++;
            }
        }
    ?>
</table>
</form>
<script src=‘common.js‘></script>
</body>
</html>

(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 ‘目标目录不存在‘;
    }
}

index.php:

<?php
require ‘dir.func.php‘;
require ‘file.func.php‘;
require ‘common.func.php‘;
$path = ‘file‘;
$path = @$_REQUEST[‘path‘][email protected]$_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=""  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;?>"  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"  title=‘可读‘></td>
        <td><?php $src = is_writeable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  title=‘可写‘></td>
        <td><?php $src = is_executable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  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" ></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" ></a>
            <?php
                }
            ?>

            <a href="index.php?act=editContent&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘修改‘><img src="images/edit.png" class="small" ></a>
            <a href="index.php?act=renameFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘重命名‘><img src="images/rename.png" class="small" ></a>
            <a href="index.php?act=copyFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘复制‘><img src="images/copy.png" class="small" ></a>
            <a href="index.php?act=cutFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘剪切‘><img src="images/cut.png" class="small" ></a>
            <a href="javascript:void(0)" onclick="delFile(‘<?php echo $p;?>‘)" title=‘删除‘><img src="images/delete.png" class="small" ></a>
            <a href="index.php?act=downFile&path=<?php echo $path;?>&filename=<?php echo $p;?>" title=‘下载‘><img src="images/download.png" class="small" ></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;?>"  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"  title=‘可读‘></td>
        <td><?php $src = is_writeable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  title=‘可写‘></td>
        <td><?php $src = is_executable($p)?‘correct.png‘:‘error.png‘;?><img src="images/<?php echo $src;?>" class="small"  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" ></a>
            <a href="index.php?act=renameFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title=‘重命名‘><img src="images/rename.png" class="small" ></a>
            <a href="index.php?act=copyFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title=‘复制‘><img src="images/copy.png" class="small" ></a>
            <a href="index.php?act=cutFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>" title=‘剪切‘><img src="images/cut.png" class="small" ></a>
            <a href="javascript:void(0)" onclick="delFolder(‘<?php echo $p;?>‘,‘<?php echo $path;?>‘)" title=‘删除‘><img src="images/delete.png" class="small" ></a>
            <a href="index.php?act=downFile&filename=<?php echo $p;?>" title=‘下载‘><img src="images/download.png" class="small" ></a>
        </td>
    </tr>
    <?php
                $i++;
            }
        }
    ?>
</table>
</form>
<script src=‘common.js‘></script>
</body>
</html>

时间: 2024-11-11 06:34:42

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

Web 在线文件管理器学习笔记与总结(19)上传文件

dir.func.php 中添加方法: /* 上传文件 */ function uploadFile($fileInfo,$path,$allowExt = array('jpg','jpeg','png','gif','txt'),$maxSize = 10487560){ //判断错误号 if($fileInfo['error'] == 0){ //文件是否是http上传上来的 if(is_uploaded_file($fileInfo['tmp_name'])){ $uniqid = md

Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹

(13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 index.php: <?php require 'dir.func.php'; require 'file.func.php'; require 'common.func.php'; $path = 'file'; $path = @$_REQUEST['path'][email protected

Web 在线文件管理器学习笔记与总结(7)重命名文件

rename($oldname,$newname) 重命名文件或目录 <<<EOF EOF; 使用heredoc 技术,来部分实现界面与代码的准分离 重命名时,需要验证新文件名的合法性 index.php: <?php require 'dir.func.php'; require 'file.func.php'; require 'common.func.php'; $path = 'file'; $info = readDirectory($path); $act = @$_R

Web 在线文件管理器学习笔记与总结(5)

① 读出要修改的文件的内容 ② 进行修改 ③ 将修改后的内容写进文件 index.php: <?php require 'dir.func.php'; require 'file.func.php'; require 'common.func.php'; $path = 'file'; $info = readDirectory($path); $act = @$_REQUEST['act']; $filename = @$_REQUEST['filename']; //跳转变量 $redire

Web 在线文件管理器学习笔记与总结(2)显示文件列表(名称,类型,大小,可读,可写,可执行,创建时间,修改时间,访问时间)

主要函数: filetype() 判断文件类型 filesize() 得到文件大小(字节) is_readable() 判断文件是否可读 is_writeable() 判断文件是否可写 is_executable() 判断文件是否可执行 filectime() 文件创建时间 filemtime() 文件修改时间 fileatime() 文件访问时间 file.func.php 封装文件操作的文件: <?php /* 转换字节大小 */ function transByte($size){ $ar

Web 在线文件管理器学习笔记与总结(11)获取文件夹信息 (12)返回上一级操作

(11)获取文件夹信息 文件夹没有修改操作. index.php: <?php require 'dir.func.php'; require 'file.func.php'; require 'common.func.php'; $path = 'file'; $path = @$_REQUEST['path'][email protected]$_REQUEST['path']:$path; $info = readDirectory($path); if($info == NULL){ e

Web 在线文件管理器学习笔记与总结(4)查看文件内容

② 查看文件内容 a.通过 file_get_contents($filename) 得到文件内容 b.通过 highlight_string($string) 或者 highlight_file($filename) 显示内容.使用 PHP 内置的语法高亮器所定义的颜色,打印输出或者返回输出或者返回语法高亮版本的 PHP 代码 当使用 file_get_contents 读取(php)文件的内容并且显示在页面上,可以使用 <textarea></textarea> 包裹输出的内容

Web 在线文件管理器学习笔记与总结(1)初始文件以及获取首层目录信息

在线文件管理器即使用浏览器管理和操作项目中的目录和文件 文件相关操作包括: 1.创建文件 2.判断文件的权限 3.文件的大小 4.文件的创建时间.修改时间.访问时间 5.查看文件的内容 6.修改文件的内容 7.删除文件 8.重命名文件 9.复制文件 10.剪切文件 11.上传文件 12.下载文件 文件夹相关操作: 1.新建文件夹 2.判断文件夹的权限 3.文件夹的大小 4.文件夹的创建时间.修改时间.访问时间 5.查看文件夹的内容 6.重命名文件夹 7.复制文件夹 8.剪切文件夹 9.文件夹的下

Web 在线文件管理器学习笔记与总结(3)创建文件

① 创建文件 a. 文件名的合法性:不能包含 \/:*"<>| 等特殊字符 b. 检测当前目录下是否存在同名文件,如果存在提示请重命名后创建,如果不存在则直接创建 index.php: <?php require 'dir.func.php'; require 'file.func.php'; require 'common.func.php'; $path = 'file'; $info = readDirectory($path); $act = @$_REQUEST['a

Web 在线文件管理器学习笔记与总结(6)jQuery UI 预览图片

① 查看文件内容,如果文件是图片类型,点击直接查看图片: ② 如果不是图片类型,显示文件中的内容: ③ 使用 jQuery UI 中的 Dialog 显示图片 a.引入: <script src="jquery-1.8.3.min.js"></script> <script src="jquery-ui-1.11.3/jquery-ui.min.js"></script> <link rel="styl