九、文件与目录

九、文件与目录

  1. 判断普通文件和目录

    • is_file():判断给定文件名是否为一个正常的文件
    • is_dir():判断给定文件名是否为一个目录
  2. 文件属性

    • file_exists():检查文件或目录是否存在
    • filesize():取的普通文件的大小
    • is_readable():判断给定文件名是否可读
    • is_writable():判断给定文件名是否可写
    • filectime():获取文件的创建时间
    • filemtime():获取文件的修改时间
    • fileatime():取得文件的上次访问时间
    • stat():获取文件大部分的属性值
  3. 目录的基本操作

    • basename():返回路径中的文件名部分
    • dirname():返回路径中的目录部分
    • pathinfo():返回文件路径信息
    • opendir():打开目录句柄
    • readdir():从目录句柄中读取条目,返回目录中下一个文件的文件名
    • rewinddir():倒回目录句柄
    • closedir():关闭目录句柄
    • mkdir():新建目录
    • rmdir():删除指定空目录
    • scandir():列出指定路径中的文件和目录
  4. 文件的基本操作

    • fopen():打开文件或 URL
    • fread():读取文件
    • fgets():从文件指针中读取一行
    • feof():测试文件指针是否到了文件结束的位置
    • fwrite():写入文件
    • rewind():倒回文件指针的位置
    • flock():轻便的咨询文件锁定
    • ftruncate():将文件截断到给定的长度
    • fclose():关闭一个已经打开的文件指针
    • file():把整个文件读入到一个数组中
    • copy():拷贝文件
    • unlink():删除文件
    • file_get_contents():将整个文件读入一个字符串
    • file_put_contents():将字符串写入文件中
    • rename():重命名一个文件或目录
    • readfile():读入一个文件并写入到输出缓冲
    <?php 
    header('Content-type:text/html,charset=utf-8');
    $file = fopen('test.txt','r');
    $n = 2;
    var_dump(fread($file,$n));// 读取 $n 个字节
    var_dump(fgets($file));//从上一个字节之后开始读取一行
    var_dump(feof($file));//测试文件指针是否到了文件结束的位置
    fclose($file);
    $file = fopen('test.txt','a+');
    if(flock($file, 2)){
        var_dump(fwrite($file, '加锁状态'));
        flock($file, LOCK_UN);
    }else{
        echo "加锁失败!";
    }
    ?>
    

    在这里插入图片描述

  5. 文件的上传

    • 文件上传的过程是自动的,文件的上传操作是操你个存放上传文件临时目录里将上传的文件移动到需要的地方。
    <?php 
    header('Content-type:text/html;charset=utf-8');
    var_dump($_FILES);
    if(isset($_POST['submit'])){
        if(is_uploaded_file($_FILES['myfile']['tmp_name'])){//判断文件是否是通过 HTTP POST 上传的
            $arr = pathinfo($_FILES['myfile']['name']);//返回文件路径的信息
            $nawName = date("YmgGis").rand(1000, 9999);
            if(!file_exists("uploads")){    //判断文件目录是否存在
                mkdir("uploads");           //创建文件目录
            }
            if(move_uploaded_file($_FILES['myfile']['tmp_name'], "uploads/{$nawName}.{$arr['extension']}")){//将上传的文件移动到新位置
                echo '上传成功!';
            }else{
                echo '文件移动失败!';
            }
        }else{
            exit();
        }
    }
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>上传界面</title>
    </head>
    <body>
    <form action="" method="post" enctype="multipart/form-data">
    	<input type='file' name='myfile' />
    	<input type="submit" name="submit" value="开始上传" />
    </form>
    </body>
    </html>
    

    在这里插入图片描述

  6. 文件的下载

    • 发送指定的文件的 MIME 类型的头信息
      • header('Content-type:'MIME类型)
    • 指定下载文件的描述
      • header('Content-Disposition:attachement;filename=文件名称')
    • 指定下载文件的大小
      • header('Content-Length:文件大小')
    • 读取文件内容至缓冲区
      • readfile()
    <?php 
    $file = "uploads/20200331532532008.png";
    $fileinfo = finfo_open(FILEINFO_MIME_TYPE);//创建一个 fileinfo 资源
    $mimeType = finfo_file($fileinfo, $file);//返回文件的 MIME 类型
    finfo_close($fileinfo);
    //发送指定的文件MIME类型
    header('Content-type:'.$mimeType);
    //指定下载文件的描述
    header('Content-Disposition:attachement;filename='.basename($file));
    //指定下载文件的大小
    header('Content-Length:'.filesize($file));
    //读取文件内容至缓冲区,返回这个文件
    readfile($file);
    echo "下载成功!";
    ?>
    

    在这里插入图片描述

发布了10 篇原创文章 · 获赞 0 · 访问量 117

猜你喜欢

转载自blog.csdn.net/ck_15270706753/article/details/105016445
今日推荐