PHP操作文件和目录
创始人
2025-05-31 04:47:43

PHP操作文件和目录

  • 一、目录处理
      • 1.1 目录信息查询
      • 1.2 目录操作
  • 二、文件处理
      • 2.1 查询文件信息
      • 2.2 文件操作
      • 2.3 文件的上传
          • 1. 文件上传配置
          • 2. 单文件上传表单
          • 3. 多文件上传表单
          • 4. 全局变量$file
          • 5. 文件上传后端代码
      • 2.4 文件的下载
          • 1. 链接下载
          • 2.函数下载


一、目录处理

如下图所示,当前的工作目录是C:\Users\YK\Desktop\PHP_web\code\exercise\dir

在这里插入图片描述

1.1 目录信息查询

  1. is_dir(dir):查看dir) : 查看dir):查看dir是不是目录(判断当前工作目录下是否有$dir这个目录)
  2. dirname(file):查看file):查看file):查看file文件工作的相对目录(判断当前工作目录下的文件的相对目录路径)
  3. realpath(file):查看file):查看file):查看file文件工作的绝对目录(判断当前工作目录下的文件的绝对路径)
  4. getcwd():查看当前运行文件工作的绝对目录
  5. phpinfo():获取详细信息

如下是代码执行结果:
在这里插入图片描述

1.2 目录操作

  1. chdir():更改当前工作目录(getcwd():显示当前工作目录)
  2. mkdir():创建工作目录
    在这里插入图片描述

如下是代码显示结果:
在这里插入图片描述

  1. rmdir():删除目录,要求删除的目录下无任何的文件
  2. opendir(dir):打开dir):打开dir):打开dir目录
  3. readdir(dir):读取dir):读取dir):读取dir目录信息
    6closedir(dir):关闭dir):关闭dir):关闭dir目录
echo $file . PHP_EOL;$file = readdir($dirhandel); //每次读取一个
}
closedir($dirhandel);

在这里插入图片描述

二、文件处理

2.1 查询文件信息

  1. is_file($file):文件是不是有效文件
  2. file_exits($file):文件是否存在
  3. fileatime($file):文件最后一次被修改的时间
  4. fileperms($file):文件的权限
echo '1.txt不是正常文件' . PHP_EOL;die();
}
if(file_exists($file))
{echo '1.txt文件存在' .PHP_EOL;
}
echo date('Y-m-d H:i:s', fileatime($file)) . PHP_EOL; //文件最后一次被修改的时间echo fileperms($file);

如下是代码运行结果:
在这里插入图片描述

2.2 文件操作

  1. fopen():打开文件
    在这里插入图片描述

一般就使用前两个参数

  1. fwrite(fp,fp,fp,string,$length):写数据到文件,(length可选,代表写入文件的长度)
  2. fgetc($fp):每次读取一个字符
  3. fgets($fp):每次读取一行字符
  4. readline(fp,fp,fp,length):读取length长度的字符
  5. file($fp):读取整个文件:
echo $word;$word = fgetc($fp);  //读取一个单词
}
fclose($fp); //关闭文件
echo PHP_EOL;$fp = fopen('1.txt', 'r'); //以读的形式打开1.txt文件
$line = fgets($fp);  //读取一行
while ($line !== false)  //判断是否读到文件末尾
{echo $line;$line = fgets($fp);  //读取一个单词
}
fclose($fp); //关闭文件echo file('1.txt');  //直接读取整个文件,以数组形式展示

如下是运行结果:
在这里插入图片描述

  • unlink($file) :删除文件

2.3 文件的上传

1. 文件上传配置

文件上传配置,如下是最常见的文件上传配置:(在php.ini文件中进行相应的配置)
在这里插入图片描述

2. 单文件上传表单

支持文件上传的表单, $_FILES
单文件上传

如上提交表单后,交给uploads.php文件进行处理

3. 多文件上传表单


多文件上传


如上提交表单后,交给uploads.php文件进行处理

4. 全局变量$file

在这里插入图片描述

5. 文件上传后端代码
%s
",print_r($_FILES)); if(isset($_FILES['my_pic'])) {$name = $_FILES['my_pic']['name'];$tmpName = $_FILES['my_pic']['tmp_name'];$error = $_FILES['my_pic']['error'];if($error > 0) {$tips = '上传失败!
';switch ($error) {case 1:$tips .= '大小超过了php.ini中的允许上传的文件大小';break;case 2:$tips .= '大小超过了表单中(MAX_FILE_SIZE)的允许上传的文件大小';break;case 3:$tips .= '文件只有部分被上传';break;case 4:$tips .= '没有文件被上传';break;case 6:$tips .= '找不到临时目录';break;case 7:$tips .= '文件写入失败,请检查目录权限';break;}echo "

$tips

";}else{if(is_uploaded_file($tmpName)){$allow = ['txt'];// 扩展名$ext = pathinfo($name)['extension'];if(is_array($ext,$allow)){$path = 'uploads/';$path .= md5($name) . '.' . $ext;if(move_uploaded_file($tmpName,$path)){echo "

文件上传成功

";}else{echo "

文件上传失败

";}}else{echo "

后缀名错误

";}}else{echo "

上传方式错误

";}} } else {echo "

文件没有上传成功

"; } ?> 支持文件上传的表单, $_FILES
单文件上传

如上所示,文件上传后交给本文件进行处理

2.4 文件的下载

1. 链接下载


下载


点击进行下载 


在这里插入图片描述

两个文件在同一个目录下面,直接通关a标签进行下载

2.函数下载

如下代码进行文件的下载,

    header('HTTP/1.1 404 NOT FOUND');  
} else {    //以只读和二进制模式打开文件   $file = fopen ( $file_dir . $file_name, "rb" ); //告诉浏览器这是一个文件流格式的文件    Header ( "Content-type: application/octet-stream" ); //请求范围的度量单位  Header ( "Accept-Ranges: bytes" );  //Content-Length是指定包含于请求或响应中数据的字节长度    Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) );  //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。Header ( "Content-Disposition: attachment; filename=" . $file_name );    //读取文件内容并直接输出到浏览器echo fread ( $file, filesize ( $file_dir . $file_name ) );    fclose ( $file ); //打开的时候要进行关闭这个文件exit (); 
}

相关内容

热门资讯

两部门发布《执行抢险救灾任务车... 新京报讯 据交通运输部消息,12月16日,交通运输部办公厅、应急管理部办公厅发布《执行抢险救灾任务车...
里昂:予美图公司(01357)... 里昂发布研报称,即使部分由于竞争对手推出人工智能图像生成工具导致股价波动,其测试显示美图公司(013...
疯狂英伟达,疯狂撒钱 文 | 硅基研究室 kiki大约在一年前,「硅谷风投教父」彼得·蒂尔在评论英伟达时,给出了这样的判断...
印度证券交易委员会将建议降低农... 格隆汇12月16日|消息人士称,印度证券交易委员会将建议允许交易公司在交易所进行大宗商品衍生品交易。...
嘉必优跌2.12%,成交额30... 12月16日,嘉必优盘中下跌2.12%,截至14:20,报22.65元/股,成交3061.44万元,...