怎么写php文件管理器,自己写的web文件管理器

摘要://func_lib.php

//创建文件

function create_file($fileName)

{

if(file_exists($fileName)){

return '文件已存在';

}

if(!is_dir(dirname($fileName))){

mkdir(dirname($fileName),0777,t//func_lib.php

//创建文件

function create_file($fileName)

{

if(file_exists($fileName)){

return '文件已存在';

}

if(!is_dir(dirname($fileName))){

mkdir(dirname($fileName),0777,true);

}

if(touch($fileName)){

return '文件创建成功!';

}

return '文件创建失败!';

}

// echo create_file('D:\myphp_www\PHPTutorial\WWW\test.php');

//删除文件

function delete_file($fileName)

{

if(!file_exists($fileName) || !is_writable($fileName)){

return '文件不存在或没有操作权限';

}

if(unlink($fileName)){

return '文件删除成功!';

}

return '文件删除失败!';

}

// echo delete_file('D:\myphp_www\PHPTutorial\WWW\test.php');

//文件复制

function copy_file($fileName,$dest)

{

if(!file_exists($fileName) || !is_writable($fileName)){

return '文件不存在或没有操作权限';

}

if(!is_dir($dest)){

mkdir($dest,0777,true);

}

$destName = rtrim($dest,'\\/').'/'.basename($fileName);

if(file_exists($destName)){

return '目标文件已存在!';

}

if(copy($fileName,$destName)){

return '文件复制成功!';

}else{

return '文件复制失败!';

}

}

// echo copy_file('./a - copy.php','d:/');

//文件重命名

function rename_file($oldName,$newName)

{

if(!file_exists($oldName) || !is_writable($oldName)){

return '文件不存在或没有操作权限';

}

$newName = dirname($oldName).'/'.$newName;

if(file_exists($newName)){

return '目标文件已存在!';

}

if(rename($oldName,$newName)){

return '文件重命名成功!';

}else{

return '文件重命名失败!';

}

}

// echo rename_file('./aa.php','a.php');

function cut_file($fileName,$destDir)

{

if(!is_file($fileName) || !is_writable($fileName)){

return '该文件不存在或不可写';

}

if(!is_dir($destDir)){

mkdir($destDir,0777,true);

}

$destName = rtrim($destDir,'\\/').'/'.basename($fileName);

if(is_file($destName)){

return '目标目录已存在同名文件';

}

if(rename($fileName,$destName)){

return '剪切文件成功!';

}

return '剪切文件失败!';

}

// echo cut_file('d:/a.php','D:\myphp_www\PHPTutorial\WWW\test');

function get_file_info($fileName)

{

date_default_timezone_set('Asia/Shanghai');

if(!is_file($fileName) || !is_writable($fileName)){

return '该文件或目录不存在或不可写';

}

return [

'type'  => filetype($fileName),

'ctime' => date('Y-m-d H:i:s',filectime($fileName)),

'mtime' => date('Y-m-d H:i:s',filemtime($fileName)),

'atime' => date('Y-m-d H:i:s',fileatime($fileName)),

'size'  => trans_byte(filesize($fileName))

];

}

// print_r(get_file_info('a.php'));

function trans_byte($byte,$precision = 2)

{

$kb = 1024;

$mb = 1024 * $kb;

$gb = 1024 * $mb;

$tb = 1024 * $gb;

if($byte 

return $byte.'B';

}elseif($byte 

return round($byte/$kb,$precision).'KB';

}elseif($byte 

return round($byte/$mb,$precision).'MB';

}elseif($byte 

return round($byte/$gb,$precision).'GB';

}else{

return round($byte/$tb,$precision).'TB';

}

}

function read_file($fileName)

{

if(!file_exists($fileName)){

return '该文件不存在!';

}

return file_get_contents($fileName);

}

function read_file_array($fileName,$skip_empty_lines = false)

{

if(is_file($fileName) && is_readable($fileName)){

if($skip_empty_lines){

return file($fileName,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );

}else{

return file($fileName);

}

}

return '该文件不存在或不可读';

}

// echo print_r(read_file_array('a.php',true),true);

function write_file($fileName,$data,$clear = false)

{

$dir = dirname($fileName);

if(!is_dir($dir)){

mkdir($dir,0777,true);

}

if(is_array($data) || is_object($data)){

$data = serialize($data);

}

if($clear == false){

if(is_file($fileName) && is_readable($fileName)){

if(filesize($fileName) > 0){

$srcData = file_get_contents($fileName);

$data = $srcData.$data;

}

}

}

if(file_put_contents($fileName, $data)){

return '文件写入成功';

}

return '文件写入失败';

}

// echo write_file('./file/test.txt',['name'=>'郭靖','age'=>55]);

function load_file($fileName)

{

header('Accept-Length:'.filesize($fileName));

header('Content-Disposition:attachment;filename='.basename($fileName));

readfile($fileName);

exit;

}

// echo load_file('test.txt');

function upload_file($fileinfo, $destDir='./upload', $allowExt=['jpg','gif','png','txt','php'], $size=1000000)

{

if($fileinfo['size']>0){

if(!is_uploaded_file($fileinfo['tmp_name'])){

return '不是通过表单上传文件';

}

$ext = strtolower(pathinfo($fileinfo['name'],PATHINFO_EXTENSION));

if(!in_array($ext, $allowExt)){

return '上传文件后缀不允许';

}

if($fileinfo['size'] > $size){

return '上传文件过大';

}

if(!is_dir($destDir)){

mkdir($destDir, 0777, true);

}

$destName = rtrim($destDir,'\\/').'/'.md5(uniqid('',true)).'.'.$ext;

if(!move_uploaded_file($fileinfo['tmp_name'], $destName)){

return '上传文件失败!';

}

return '上传文件成功!';

}else{

switch ($fileinfo['error']) {

case 1:

# code...

return '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 ';

break;

case 2:

return '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 ';

break;

case 3:

return '文件只有部分被上传。 ';

break;

case 4:

return '没有文件被上传。 ';

break;

case 6:

return '找不到临时文件夹。';

break;

default:

return '文件写入失败。';

break;

}

}

}

//----------------------目录操作--------------------------

function create_folder($dir)

{

if(is_dir($dir)){

return '该目录已存在!';

}

if(mkdir($dir, 0777, true)){

return '目录创建成功!';

}

return '目录创建失败!';

}

// echo create_folder('./a/b/c');

function delete_folder($dir)

{

if(!is_dir($dir)){

return '该目录不存在';

}

$dh = opendir($dir);

while ($row = readdir($dh)) {

# code...

if($row != '.' && $row != '..'){

$dir = rtrim($dir,'\\/');

if(is_file($dir.'/'.$row)){

unlink($dir.'/'.$row);

}

if(is_dir($dir.'/'.$row)){

$func = __FUNCTION__;

$func($dir.'/'.$row);

}

}

}

rmdir($dir);

closedir($dh);

return '目录删除成功!';

}

// echo delete_folder('./a/');

function copy_dir($dir,$destDir)

{

$destDir = rtrim($destDir,'\\/').'/'.basename($dir);

if(is_dir($destDir)){

return '目标目录已存在';

}else{

mkdir($destDir, 0777, true);

}

$dh = opendir($dir);

$dir = rtrim($dir,'\\/');

$destDir = rtrim($destDir,'\\/');

while ($row = readdir($dh)) {

if($row != '.' && $row != '..'){

if(is_file($dir.'/'.$row)){

copy($dir.'/'.$row,$destDir.'/'.$row);

}

if(is_dir($dir.'/'.$row)){

$func = __FUNCTION__;

$func($dir.'/'.$row,$destDir.'/'.$row);

}

}

}

closedir($dh);

return '目录复制成功';

}

// echo copy_dir('D:\2345Downloads\\','D:\myphp_www\PHPTutorial\WWW\2345Downloads\\');

function rename_dir($oldDir, $newDir)

{

if(is_dir($newDir)){

return '目标目录已存在!';

}

$newDir = dirname($oldDir).'/'.basename($newDir);

if(rename($oldDir, $newDir)){

return '目录重命名成功!';

}

return '目录重命名失败!';

}

// echo rename_dir('./file','./file1');

function cut_dir($srcDir, $destDir)

{

if(is_dir($destDir)){

$destDir = rtrim($destDir,'\\/').'/'.basename($srcDir);

if(file_exists($destDir)){

if(rename($srcDir, $destDir)){

return '目录剪切成功!';

}else{

return '目录剪切失败!';

}

}else{

return '目标目录已存在!';

}

}else{

return '目标不是一个目录';

}

}

// echo cut_dir('./a','../');

function read_dir($dir)

{

$arr = [];

$dh = opendir($dir);

while($row = readdir($dh)){

if($row != '.' && $row != '..'){

$dir = rtrim($dir,'\\/');

if(is_file($dir.'/'.$row)){

$arr['file'][] = $row;

}

if(is_dir($dir.'/'.$row)){

$arr['dir'][] = $row;

}

}

}

closedir($dh);

return $arr;

}

// echo print_r(read_dir('./'),true);

function dir_size($dir)

{

static $num = 0;

$dh = opendir($dir);

while(($row = readdir($dh)) !== false){

if($row!='.' && $row!='..'){

$dir = rtrim($dir,'\\/');

if(is_file($dir.'/'.$row)){

$num += filesize($dir.'/'.$row);

}

if(is_dir($dir.'/'.$row)){

$func = __FUNCTION__;

$func($dir.'/'.$row);

}

}

}

closedir($dh);

return trans_byte($num);

}

// echo trans_byte(dir_size('../oa'));

//file.php

require_once '../func_lib.php';

$path = '../';

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

$data = read_dir($path);

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

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

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

$url = $_SERVER['PHP_SELF'].'?path='.$path;

require './operation.php';

require './muban.php';

//muban.php

html>

PHP中文网—Web在线文件管理器

PHP中文网—Web在线文件管理器

  • style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square">

    >

  • style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square">

    >

  • style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square">

    >

  • style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square">

    >

请输入文件夹名称

"/>

请输入文件名称

"/>

请选择要上传的文件
编号名称类型大小可读可写可执行创建时间修改时间访问时间操作
<?php  echo $i;?><?php  echo iconv('GBK','UTF-8',$v);?><?php  echo $info['size'];?><?php  $src=is_readable($p)?'correct.png':'error.png';?>"><?php  $src=is_writable($p)?'correct.png':'error.png';?>"><?php  $src=is_executable($p)?'correct.png':'error.png';?>"><?php  echo $info['ctime'];?><?php  echo $info['mtime'];?><?php  echo $info['atime'];?>

$ext = pathinfo($v,PATHINFO_EXTENSION);

$allowExt = ['jpg','jpeg','gif','png'];

if(in_array($ext, $allowExt)):

?>

            ','<?php  echo $p;?>');">

            &filename=<?php  echo $p;?>">    

            &filename=<?php  echo $p;?>">

            &filename=<?php  echo $p;?>">

            &filename=<?php  echo $p;?>">

            &filename=<?php  echo $p;?>">

            &filename=<?php  echo $p;?>">

            &filename=<?php  echo $p;?>" οnclick="delFile('<?php  echo iconv('GBK', 'UTF-8', $p);?>','<?php  echo $path;?>')">

<?php  echo $j;?><?php  echo $v;?><?php  echo dir_size($p);?><?php  $src=is_readable($p)?'correct.png':'error.png';?>"><?php  $src=is_writable($p)?'correct.png':'error.png';?>"><?php  $src=is_executable($p)?'correct.png':'error.png';?>"><?php  echo date('Y-m-d H:i:s',filectime($p));?><?php  echo date('Y-m-d H:i:s',filemtime($p));?><?php  echo date('Y-m-d H:i:s',fileatime($p));?>

            ">

            &dirname=<?php  echo $p;?>">

            &dirname=<?php  echo $p;?>">

            &dirname=<?php  echo $p;?>">

            ','<?php  echo $path;?>')">

//operation.php

include './common.php';

if($act == '创建文件夹'){

$res = create_folder(rtrim($path,'\\/').'/'.$dirname);

alertMsg($res,$url);

}elseif($act == '创建文件'){

$res = create_file(rtrim($path,'\\/').'/'.$filename);

alertMsg($res,$url);

}elseif($act == 'showContent'){//查看文件内容

$content = read_file($filename);

if(strlen($content)){

$newContent = highlight_string($content,true);

$str = <<

{$newContent}

HERE;

echo $str;

}else{

alertMsg('该文件是空的!请编辑!',$url);

}

}elseif($act == 'editContent'){//显示修改文件内容模板

$content = read_file($filename);

$str = <<

请输入内容:{$content}

HERE;

echo $str;

}elseif($act == 'doEdit'){//修改文件操作

$content = $_REQUEST['content'];

$res = write_file($filename,$content,$clear = true);

alertMsg($res, $url);

}elseif($act == 'renameFile'){//重命名文件模板

$name = basename($filename);

$str = <<

请输入新名称:

HERE;

echo $str;

}elseif($act == 'doRenameFile'){//重命名文件

$newname = $_REQUEST['newname'];

$res = rename_file($filename, $newname);

alertMsg($res, $url);

}elseif($act == 'renameDir'){//重命名目录模板

$name = basename($dirname);

$str = <<

请输入新名称:

HERE;

echo $str;

}elseif($act == 'doRenameDir'){//重命名目录

$newname = $_REQUEST['newname'];

$res = rename_dir($dirname, $newname);

alertMsg($res, $url);

}elseif($act == 'copyFile'){//复制文件模板

$str = <<

复制到:

HERE;

echo $str;

}elseif($act == 'doCopyFile'){//复制文件

$destDir = $_REQUEST['destDir'];

$res = copy_file($filename,rtrim($path,'\\/').'/'.$destDir);

alertMsg($res, $url);

}elseif($act == 'cutFile'){//剪切文件模板

$str = <<

剪切到:

HERE;

echo $str;

}elseif($act == 'doCutFile'){//剪切文件

$destDir = $_REQUEST['destDir'];

$res = cut_file($filename, rtrim($path,'\\/').'/'.$destDir);

alertMsg($res, $url);

}elseif($act == 'copyDir'){//复制目录模板

$folder = basename($dirname);

$str = <<

把{$folder}文件夹复制到:

HERE;

echo $str;

}elseif($act == 'doCopyDir'){//复制目录

$destDir = $_REQUEST['destDir'];

$res = copy_dir($dirname, rtrim($path,'\\/').'/'.$destDir);

alertMsg($res, $url);

}elseif($act == 'cutDir'){//剪切目录模板

$folder = basename($dirname);

$str = <<

把{$folder}文件夹剪切到:

HERE;

echo $str;

}elseif($act == 'doCutDir'){//剪切目录

$destDir = $_REQUEST['destDir'];

$res = cut_dir($dirname, rtrim($path,'\\/').'/'.$destDir);

alertMsg($res, $url);

}elseif($act == 'loadFile'){//下载文件

//echo $filename;exit;

load_file($filename);

}elseif($act == 'delFile'){//删除文件

$filename = iconv('UTF-8', 'GBK', $filename);

$res = delete_file($filename);

alertMsg($res, $url);

}elseif($act == '上传文件'){//上传文件

$fileInfo = $_FILES['myFile'];

$res = upload_file($fileInfo,'../upload');

alertMsg($res, $url);

}elseif($act == 'delFile'){//删除文件

$res = delete_file(rtrim($path,'\\/').'/'.$filename);

alertMsg($res, $url);

}elseif($act == 'delFolder'){//删除目录

$res = delete_folder(rtrim($path,'\\/').'/'.$dirname);

alertMsg($res, $url);

}

//common.php

function alertMsg($msg,$url)

{

echo "";

}

8cca53da2959dc4b7b2eac0dc8c1746f.png

批改老师:天蓬老师批改时间:2019-05-17 17:44:02

老师总结:php的文档管理功能, 与其它语言相比, 还是很简单的, 但效率还是可以的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值