记住用户名密码
最新版本的tp3.2.2中的文件驱动类目前得功能有文件的读,写,追加写,加载文件,判断文件是否存在,文件删除,读取文件信息,小弟在这增加了些目录和文件,分享给大家,需要完善的地方还请大神们多多指教拉! 这里新增了获取目录下子目录及文件列表,移动指定文件,清空目录(不包括目录文件夹),删除目录。
调用文件驱动 IndexController.class.php
<?php namespace Home\Controller; use Think\Controller; use Think\Storage; //引用文件驱动 class IndexController extends Controller { public function index(){ $file = new Storage; //实例化文件驱动 $file::connect(STORAGE_TYPE); $view = MODULE_PATH."View"; $list = $file::getList($view); foreach ($list as $k) { if(is_array($k)) { foreach ($k as $key) { echo $key["name"]."<br>"; } } } $this->display(); } }
TP的默认文件驱动 Library\Think\Storage\Driver 在File.class.php这个文件类中追加目录操作方法:
/* * 获取目录下子目录及文件列表 * @param string $dirUrl 要扫描的目录地址。 * @return array */ public function getList($dirUrl){ $dirUrl=rtrim($dirUrl,'/'); if(!is_dir($dirUrl)){ return false; } $fileList=array(); $dirList=array(); $objects=scandir($dirUrl); foreach($objects as $obj){ if($obj=='.'||$obj=='..'){ continue; } $fileUrl=$dirUrl.'/'.$obj; if(is_file($fileUrl)){ $filesize=filesize($fileUrl); $fileupdate=fileatime($fileUrl); array_push($fileList,array('Name'=>$obj,'fullName'=>$fileUrl,'length'=>$filesize,'uploadTime'=>$fileupdate)); } if(is_dir($fileUrl)){ array_push($dirList,array('name'=>$obj,'fullName'=>$fileUrl)); } } return array('dirNum'=>count($dirList),'fileNum'=>count($fileList),'dirs'=>$dirList,'files'=>$fileList); } /* * 移动指定文件 * @param string $fileUrl 要移动的文件地址。 * @param string $aimUrl 移动后的新地址。 * @param boolen $overWrite 是否覆盖已存在的文件。 * @return boolen */ public function moveFile($fileUrl, $aimUrl, $overWrite = true) { if (!is_file($fileUrl)) { return false; } if (is_file($aimUrl) && $overWrite == false) { return false; } elseif (is_file($aimUrl) && $overWrite == true) { $this->unlinkFile($aimUrl); } $aimDir = dirname($aimUrl); $this->createDir($aimDir); rename($fileUrl, $aimUrl); return true; } /* * 清空目录 * @param string $dirUrl 要清空的目录地址。 * @return boolen */ public function clearDir($dirUrl){ $dirUrl=rtrim($dirUrl,'/'); if(!is_dir($dirUrl)){ return false; } $infos=$this->getList($dirUrl); $result=true; foreach ($infos['files'] as $file){ $result=$this->unlinkFile($file['fullName']); } foreach ($infos['dirs'] as $dir){ $result=$this->unlinkDir($dir['fullName']); } return $result; } /* * 删除目录 * @param string $dirUrl 要删除的目录地址。 * @return boolen */ public function unlinkDir($dirUrl){ $dirUrl=rtrim($dirUrl,'/'); if(!is_dir($dirUrl)){ return false; } $infos=$this->getList($dirUrl); foreach ($infos['files'] as $file){ $this->unlinkFile($file['fullName']); } foreach ($infos['dirs'] as $dir){ $this->unlinkDir($dir['fullName']); } return rmdir($dirUrl); }
通过文件操作类可以仿cms文件操作哦,直接在线修改模板。
目前有 0 条留言 其中:访客:0 条, 博主:0 条