BVB Source Codes

Desert arashi v0.1.2 file operations procedures Show file_class_odaboy.php Source code

Return Download Desert arashi v0.1.2 file operations procedures: download file_class_odaboy.php Source code - Download Desert arashi v0.1.2 file operations procedures Source code - Type:.php
  1. <?php
  2. /*     
  3.  * @author  odaboy  QQ 5735524, www.odaboy.com
  4.  * @文件操作类
  5.  * @v 0.1.2
  6.  * @增加了查看目录功能
  7.  * @修正了不能遍历上级目录
  8.  * @time 20111101
  9.  *  */
  10. class file_class{
  11.         var $root ; //路径
  12.         var $handle ; //记录当前文件夹信息
  13.         function __construct(){
  14.                 $this->root = dirname(__FILE__);
  15.         }
  16. /*     
  17.  * function_ file_root
  18.  * 设置新路径
  19.  * return : string
  20.  *  */
  21.         function file_root($path,$root=false){
  22.                 if($path{0}!='//' && $path{0}!='\\')
  23.                         $path = '\\'.$path;
  24.                 if($root==false && isset($path)){
  25.                         $this->root .=  $path;
  26.                 }else{
  27.                         $this->root =  $root .$path;
  28.                 }
  29.         }
  30. /*     
  31.  * function_ file_read
  32.  * 设置新路径
  33.  * return : string
  34.  *  */
  35.         function file_read($path,$root=false){
  36.                 if(is_file($this->root =  $root .$path)){
  37.                         file_get_contents();
  38.                 }
  39.         }
  40. /*     
  41.  * function_ file_list
  42.  * 遍历当前目录
  43.  *
  44.  *  */
  45.         function file_list(){
  46.                 if(is_dir($this->root)){
  47.                         if($dh = opendir($this->root)) {
  48.                         $i = 1;
  49.                                 while (($file = readdir($dh)) !== false) {
  50.                                         if($file!='.' && $file!='..'){
  51.                                                 $this->handle[$i]['name']=$file;
  52.                                                 $this->handle[$i]['type']=$this->file_type($file);
  53.                                                 $this->handle[$i]['size']=$this->file_size($file);
  54.                                                 $this->handle[$i]['rw']=$this->file_rw($file);
  55.                                                 $this->handle[$i]['time']=$this->file_time($file);
  56.                                                 $this->handle[$i]['md5']=$this->file_md5($file);
  57.                                                 $i++;
  58.                                         }
  59.                                 }
  60.                         fclose($dh);
  61.                         }
  62.                 }
  63.         }
  64. /*     
  65.  * function_ file_rw
  66.  * 返回当前文件的权限,是否可读可写
  67.  * return :string   00  没权限, 11 可读可写, 10  可读 ,01  可写
  68.  *  */
  69.         function file_rw($file){
  70.                  if(@fopen($this->root.'/'.$file,'r')){
  71.                         $status = '10';
  72.                  }elseif(@fopen($this->root.'/'.$file,'w')){
  73.                         $status ='01';
  74.                  }elseif(@fopen($this->root.'/'.$file,'r+')){
  75.                         $status ='11';
  76.                  }else{
  77.                         $status ='00';
  78.                  }
  79.                  return $status;//不可读
  80.         }
  81. /*     
  82.  * function_ file_type
  83.  * 返回当前文件的类型
  84.  * return :string
  85.  *  */
  86.         function file_type($file){
  87.                 return filetype($this->root.'/'.$file);
  88.         }
  89. /*     
  90.  * function_ file_time
  91.  * 返回当前文件的时间,修改时间和上次访问时间
  92.  * return :string
  93.  *  */
  94.         function file_time($file){
  95.                 $time['fileatime'] = fileatime($this->root.'/'.$file);
  96.                 $time['filemtime'] = filemtime($this->root.'/'.$file);
  97.                 return $time;
  98.         }
  99. /*     
  100.  * function_ file_size
  101.  * 返回当前文件的大小
  102.  * return :string
  103.  *  */
  104.         function file_size($file){
  105.                 return filesize($this->root.'/'.$file);
  106.         }
  107. /*     
  108.  * function_ file_del
  109.  * 删除文件夹,文件
  110.  * return : bool
  111.  *  */
  112.         function file_del($file){
  113.                 if(is_file($this->root.'/'.$file)){
  114.                         unlink($this->root.'/'.$file);
  115.                 }
  116.         }
  117. /*     
  118.  * function_ file_md5
  119.  * 返回文件的md5值
  120.  * return : bool
  121.  *  */
  122.         function file_md5($file){
  123.                 return md5($file);
  124.         }
  125. /*     
  126.  * function_ debug
  127.  * debug输出  $f是要debug的函数或者变量,$v=1 var_dump输出 ,否则print_r输出
  128.  *  */
  129.         function debug($f,$v){
  130.                 switch ($v) {
  131.                         case 1:
  132.                                 var_dump($this->$f);break;
  133.                         default:
  134.                                 print_r($this->$f);break;
  135.                 }
  136.         }
  137. }
  138.  
  139.  
  140.  
  141.  
  142.  
  143. $action=$_GET['action'];
  144. $de = new file_class();
  145. $de -> debug('root', 0);
  146. $de -> file_root($_GET['path']);
  147. $de -> file_list();
  148. // $de -> debug('handle', 0);
  149.  
  150. if($action=='del'){
  151.         if(isset($_GET['file'])){
  152.                 $de -> file_del($_GET['file']);
  153.         }
  154. }
  155. if($action=='show'){
  156.         if(isset($_GET['path'])){
  157.                 $de -> file_root($_GET['path']);
  158.         }
  159. }
  160.  
  161.  
  162. ?>
  163.  
  164. <TABLE>
  165. <TR>
  166.         <TD>文件名</TD>
  167.         <TD>大小</TD>
  168.         <TD>类型</TD>
  169.         <TD>权限</TD>
  170.         <TD>修改时间</TD>
  171.         <TD>上次访问时间</TD>
  172.         <TD>MD5</TD>
  173.         <TD>删除</TD>
  174. </TR>
  175. <TR>
  176.                 <TD><a href="?action=show&path=<?php echo (isset($_GET['path']) && (substr($_GET['path'],0,3)=='../'))?substr($_GET['path'],3,strlen($_GET['path'])):'.\/'?>">.</a></TD>
  177. </TR>
  178. <TR>
  179.                 <TD><a href="?action=show&path=<?php echo isset($_GET['path'])?$_GET['path'].'../':'../'?>">..</a></TD>
  180. </TR>
  181. <?php
  182. if(!is_array($de -> handle)) exit;
  183. foreach($de -> handle as $value){ ?>
  184. <TR>
  185.         <TD><?php if($value["type"]=='dir'){?><a href="?action=show&path=<?php echo $_GET['path'].$value['name']?>"><b style="color:red"><?php echo $value["name"]?></b></a><?php }else{?><?php echo $value["name"];}?></TD>
  186.         <TD><?php echo $value["type"]?></TD>
  187.         <TD><?php echo $value["size"]?></TD>
  188.         <TD><?php echo $value["rw"]=='00'?'没权限':($value["rw"]=='11'?'可读可写':($value["rw"]=='10'?'可读':'可写'))?></TD>
  189.         <TD><?php echo date("Y-m-d",$value["time"]["filemtime"])?></TD>
  190.         <TD><?php echo date("Y-m-d",$value["time"]["fileatime"])?></TD>
  191.         <TD><?php if($value["type"]!='dir') echo $value["md5"];?></TD>
  192.         <TD><a href='?action=del&file=<?php echo $value["name"]?>'>点击删除</a></TD>
  193. </TR>
  194. <?php }?>
  195.  
  196. </TABLE>
downloadfile_class_odaboy.php Source code - Download Desert arashi v0.1.2 file operations procedures Source code
Related Source Codes/Software:
Ali cloud storage v1.1 PHP file upload system root directory - Aliyun stored SWFUPLOAD a simple file upload syste... 2016-10-23
Qr code generation V1.1 online - Directions for use: 2016-10-23
Short url program V1.2 (with black and white list function) - This short url program has three features: 2016-10-22
V2.0 Openbiz Cubi PHP rapid development platform - Openbiz Cubi is a PHP-based open source rapid appl... 2016-10-22
At half past eight self-help chain utf-8 v1.0 - Installation instructions After downloading befor... 2016-10-22
Good business mall v2.0 open source edition - Good business, open source shopping mall, which is... 2016-10-23
Easy website system v2.0 - Business easy built station system (Sunnyi Website... 2016-10-23
Emlog for SAE v4.2.1 - Emlog for SAE is suitable for SAE emlog used modif... 2016-10-23
Food science and technology chain edition v1.1 online reservation system - Treat chain version of the main functions of the o... 2016-10-23
MyProber PHP 0.26 a probe - MyProber v0.26 2016-10-23
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top