angularJS框架下的在线文件管理器
程序员文章站
2022-04-03 15:17:46
...
为方便团队交流共享文件,借鉴慕课网上教学视频制作的一个在线文件管理器,采用现下流行的angularJS框架,实现文件的在线浏览,修改,删除,上传和下载等基本功能。未来还将添加用户权限管理,以及并发事件处理的模块。 ?php/** * @Author: qjw * @Date: 201
为方便团队交流共享文件,借鉴慕课网上教学视频制作的一个在线文件管理器,采用现下流行的angularJS框架,实现文件的在线浏览,修改,删除,上传和下载等基本功能。未来还将添加用户权限管理,以及并发事件处理的模块。
Online File Manager 在线文件管理器
请选择需要上传的文件
编号 名称 类型 大小 创建时间 修改时间 访问时间 操作 {{item.num}} {{item.name}} {{item.size}} {{item.createtime}} {{item.modifytime}} {{item.visittime}}
/* * @Author: qjw * @Date: 2015-09-02 16:15:30 */ angular.module('filemanager',[]) .service('data',function(){ return null; }) .controller('filemanagerController',function($scope,$http,data){ function showDetail(t,filename){ $("#showImg").attr("src",filename); $("#showDetail").dialog({ height:"auto", width: "auto", position: {my: "top", at: "center", collision:"fit"}, modal:false,//是否模式对话框 draggable:true,//是否允许拖拽 resizable:true,//是否允许拖动 title:t,//对话框标题 show:"slide", hide:"explode" }); } function GetRequest(){ var url = location.search; //获取url中"?"符后的字串 url=decodeURI(url); var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 0; i
= 1024 ) { $size /= 1024; $i ++; } return round ( $size, 2 ) . $arr [$i]; } function delFile($filename){ if(unlink($filename)){ $mes="文件删除成功"; }else{ $mes="文件删除失败"; } return $mes; } function downFile($filename){ header("content-disposition:attachment;filename=".basename($filename)); header("content-length:".filesize($filename)); readfile($filename); } function dirSize($path){ $sum=0; global $sum; $handle=opendir($path); while(($item=readdir($handle))!==false){ if($item!="."&&$item!=".."){ if(is_file($path."/".$item)){ $sum+=filesize($path."/".$item); } if(is_dir($path."/".$item)){ $func=__FUNCTION__; $func($path."/".$item); } } } closedir($handle); return $sum; } function delFolder($path){ $handle=opendir($path); while(($item=readdir($handle))!==false){ if($item!="."&&$item!=".."){ if(is_file($path."/".$item)){ unlink($path."/".$item); } if(is_dir($path."/".$item)){ $func=__FUNCTION__; $func($path."/".$item); } } } closedir($handle); rmdir($path); return "文件夹删除成功"; } function getExt($filename){ return strtolower(pathinfo($filename,PATHINFO_EXTENSION)); } function uploadFile($fileInfo,$path,$allowExt=array("gif","jpeg","jpg","png","txt"),$maxSize=10485760){ print_r($fileInfo); if($fileInfo['error']==UPLOAD_ERR_OK){ if(is_uploaded_file($fileInfo['tmp_name'])){ $ext=getExt($fileInfo['name']); $destination=$path."/".pathinfo($fileInfo['name'],PATHINFO_FILENAME).".".$ext; if(in_array($ext,$allowExt)){ if($fileInfo['size']alert('{$mes}');location.href='filemanager.php?location={$back}';"; } header("Content-type: text/html; charset=utf-8"); mysql_query("SET NAMES 'utf8'"); $action=$_REQUEST["action"]; if($action=="opendir"){ $path=$_GET["path"]; $content=readDirectory($path); $i=0; $fileinfo=null; if($content['dir']){ foreach ($content['dir'] as $val) { if($val){ $p=$path."/".$val; $fileinfo[$i]['num']=$i+1; $fileinfo[$i]['name']=$val; $fileinfo[$i]['type']=filetype($p)=='file'?'file_ico.png':'folder_ico.png'; $sum=0; $fileinfo[$i]['size']=transByte(dirSize($p)); $fileinfo[$i]['createtime']=date("Y-m-d H:i:s",filectime($p)); $fileinfo[$i]['modifytime']=date("Y-m-d H:i:s",filemtime($p)); $fileinfo[$i]['visittime']=date("Y-m-d H:i:s",fileatime($p)); $fileinfo[$i]['location']=$p; $i=$i+1; } } } if($content['file']){ foreach ($content['file'] as $val) { if($val){ $p=$path.'/'.$val; $fileinfo[$i]['num']=$i+1; $fileinfo[$i]['name']=$val; $fileinfo[$i]['type']=filetype($p)=='file'?'file_ico.png':'folder_ico.png'; $fileinfo[$i]['size']=transByte(filesize($p)); $fileinfo[$i]['createtime']=date("Y-m-d H:i:s",filectime($p)); $fileinfo[$i]['modifytime']=date("Y-m-d H:i:s",filemtime($p)); $fileinfo[$i]['visittime']=date("Y-m-d H:i:s",fileatime($p)); $fileinfo[$i]['location']=$p; $i=$i+1; } } } if($fileinfo){ echo json_encode($fileinfo); } } else if($action=="showContent"){ $location=$_GET['location']; $content=file_get_contents($location); if(strlen($content)){ echo $content; } } else if($action=="modify"){ $location=$_REQUEST['location']; $newcontent=$_REQUEST['newcontent']; $back=dirname($location); if(file_put_contents($location,$newcontent)){ $mes="文件修改成功"; }else{ $mes="文件修改失败"; } alertMes($mes,$back); } else if($action=="deletefile"){ $location=$_REQUEST['location']; $back=dirname($location); $mes=delFile($location); alertMes($mes,$back); } else if($action=="deletefolder"){ $location=$_REQUEST['location']; $back=dirname($location); $mes=delFolder($location); alertMes($mes,$back); } else if($action=="downloadfile"){ $location=$_REQUEST['location']; downFile($location); } else if($action=="upload"){ $fileInfo=$_FILES['myfile']; $path=$_REQUEST['path']; $mes=uploadFile($fileInfo,$path); alertMes($mes, $path); } ?>