摘要://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 "";
}
批改老师:天蓬老师批改时间:2019-05-17 17:44:02
老师总结:php的文档管理功能, 与其它语言相比, 还是很简单的, 但效率还是可以的