1.获取文件信息的控制器方法
<?php
namespace 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.其他控制器调用方法
<?php
namespace 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项目地址