ThinkPHP读取本地文件信息(包括中文路径)

来源:互联网 发布:上海炫踪网络 怎么样 编辑:程序博客网 时间:2024/06/07 05:17

1.获取文件信息的控制器方法

<?phpnamespace Home\Controller;use Think\Controller;class ReadFileController extends Controller{    /**     * 获取所有文件     */    public function get_allfiles($path,&$files) {          if(is_dir($path)){              $dp = dir($path);            while ($file = $dp->read()){                  if($file !="." && $file !=".."){                      $this->get_allfiles($path."/".$file, $files);                 }              }              $dp ->close();          }          if(is_file($path)){              $files[] = $path;          }      }      /**     * 获取所有文件的文件名称     */      public function get_filenamesbydir($dir){          $files = array();        $this->get_allfiles($dir,$files);        return $files;      }}?>

2.其他控制器调用方法

<?phpnamespace Home\Controller;use Think\Controller;class DownloadController extends CommonController {    /**     * 获取上传的文件 并且将数据保存到数据库     */    public function fileUploadToSave(){        $file = new \Admin\Controller\ReadFileController();        $filenames = $file->get_filenamesbydir("./Software");          //打印所有文件名,包括路径          foreach ($filenames as $value) {            //中文路径的识别            $value = iconv("gbk","utf-8",$value);             $handle = fopen($value,"r");            //获取文件的统计信息            $fstat = fstat($handle);            echo "更新问的文件信息如下:"."</br>"."</br>";            echo "文件路径:".$value."</br>";            echo "文件名:".$this->get_basename($value)."<br>";            echo "文件大小:".round($fstat["size"]/(1024*1024),2)."Mb<br>";            echo "最后访问时间:".date("Y-m-d h:i:s",$fstat["atime"])."<br>";            echo "最后修改时间:".date("Y-m-d h:i:s",$fstat["mtime"])."<br>"."<br>";            }            fclose();          }    }    /**     * 获取文件名称     */    public function get_basename($filename){          return preg_replace('/^.+[\\\\\\/]/', '', $filename);      }

ThinkPHP项目地址

https://github.com/hirCodd/thinkPHP-Web-Application

原创粉丝点击