记住用户名密码
最新版本的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 条