* Date: 2019/12/5 * Time: 17:44 */ namespace app\common\model; class FileManageModel { /** * 文件管理根目录 * @return string */ public static function getRootDir() { return Templet::getRootDir(); } /** * 获取所有文件信息 * @param string $name [过滤文件名] * @param string $relativePath [过滤子目录] * @return array */ public static function getFileList($name = "", $relativePath = "") { //定义要查看的目录 $rootpath = self::getRootDir() . DS . $relativePath; $files = []; if (!file_exists($rootpath)) { return $files; } //遍历目录 $handle = opendir($rootpath); while (false !== ($f = readdir($handle))) { //过滤点 if ($f == "." || $f == "..") { continue; } //拼路径 $filepath = rtrim($rootpath, DS) . DS . $f; //中文编码 // $filename = iconv("gb2312", "utf-8", $f); $filename = $f; //过滤 if (isset($name) and !empty($name)) { if (!ifContain($filename, $name)) { continue; } } $info = pathinfo($filepath); $ext = $info['extension']??''; $filename = str_replace_once("." . $ext, "", $filename); $key = filetype($filepath) . '-' . $ext . '-' . $filename; $files[$key] = [ "filename" => $filename,//文件名 "fileext" => $ext,//扩展名 "filetype" => filetype($filepath),//文件or文件夹 "filesize" => filesize($filepath), "fileatime" => date('Y-m-d H:i:s', fileatime($filepath)),//最后访问的时间 "filectime" => date('Y-m-d H:i:s', filectime($filepath)),//最后改变的时间 "filemtime" => date('Y-m-d H:i:s', filemtime($filepath)),//最后修改的时间,是文件的内容改变 ]; } //按文件类型和文件名排序 ksort($files); //重置索引为数字,否則layui表格全选不支持勾选 $data = []; foreach ($files as $k => $v) { $data[] = $v; } return $data; } }