php目录和文件操作函数汇总及示例

一、判断普通文件和目录
    1.is_file()//判断给定文件名是否为一个正常的文件
    2.is_dir()//判断给定文件名是否是一个目录
二、文件的属性
    1.file_exists()//检查文件或目录是否存在
    2.filesize()//取得普通文件大小
    3.is_readable()//判断给定文件名是否可读
    4.is_writable()//判断给定的文件名是否可写
    5.filectime()//获取文件的创建时间
    6.filemtime()//获取文件的修改时间
    7.fileatime()//取得文件的上次访问时间
    8.stat()//获取文件大部分属性值
三、目录的基本操作
    1.basename()//返回路径中的文件名部分
    2.dirname()//返回路径中的目录部分
    3.pathinfo()//返回文件路径的信息
    4.opendir()//打开目录句柄
    5.readdir()//从目录句柄中读取条目,返回目录中下一个文件的文件名
    6.rewinddir()//倒回目录句柄
    7.closedir()//关闭目录句柄
    8.mkdir()//新建目录
    9.rmdir()//删除指定的空目录
    10.scandir()//列出指定路径中的文件和目录
四、文件的基本操作
    1.fopen()//打开文件或者 URL
    2.fread()//读取文件
    3.fgets()//从文件指针中读取一行
    4.feof()//测试文件指针是否到了文件结束的位置
    5.fwrite()//写入文件
    6.rewind()//倒回文件指针的位置
    7.flock()//轻便的咨询文件锁定
    8.ftruncate()//将文件截断到给定的长度
    9.fclose()//关闭一个已打开的文件指针
    10.file() //把整个文件读入一个数组中
    11.copy()//拷贝文件
    12.unlink()//删除文件
    13.file_get_contents()//将整个文件读入一个字符串
    14.file_put_contents()//将字符串写入文件中
    15.rename()//重命名一个文件或目录
    16.readfile()//读入一个文件并写入到输出缓冲

示例

<?php
require_once 'func.php';

$path = isset($_REQUEST['path']) ? $_REQUEST['path']:'file';
$info = readDirectory($path);

$act = isset($_REQUEST['act']) ? $_REQUEST['act'] : '';
$filename = isset($_REQUEST['filename']) ? $_REQUEST['filename'] : '';
$dirname = isset($_REQUEST['dirname']) ? $_REQUEST['dirname'] : '';
$redirect = "index.php?path={$path}";
@$fileExt = !empty($filename) ? strtolower(end(explode('.', $filename))) : '';
$imageExt = ['gif', 'jpg', 'jpeg', 'png'];

    //创建文件
    if ($act && $act == 'createFile') {
        $mes = createFile($path . '/' . $filename);
        alertMeg($mes,$redirect);
    }

    //查看文件(中文有乱码问题)
    if ($act && $act == 'showContent'){
        if (in_array($fileExt, $imageExt)){//图片文件
            ?>
                <image src="<?php echo $filename ?>">
            <?php
        } else {
            $content = file_get_contents($filename);
            // highlight_file($filename);//高亮显示php代码
            if (empty($content)) {
                alertMeg('内容为空', $redirect);
            } else {
                highlight_string($content);//高亮显示php代码,
            }
        }
    }
    //修改文件
    if ($act && $act == 'editContent') {
            if (in_array($fileExt, $imageExt)) {
                alertMeg('图片无法修改',$redirect);
            }
            if ($_SERVER['REQUEST_METHOD'] == 'GET') {
                $content = file_get_contents($filename);
                ?>
                <form action="index.php?act=editContent&filename=<?= $filename ?>&path=<?= $path?>" method="post">
                    <textarea cols="100" rows="10" name="content"><?= $content ?></textarea><br>
                    <input type="submit" value="修改">
                </form>
                <?php
            } else {
                $bytes = file_put_contents($filename, $_POST['content']);
                if ($bytes >= 0) {
                    alertMeg('修改成功',$redirect);
                } else {
                    alertMeg('修改失败',$redirect);
                }
            }
        }
    //重命名文件
    if ($act && $act == 'renameContent') {
          if ($_SERVER['REQUEST_METHOD'] == 'GET') {
              $fileInfo = pathinfo($filename);
            ?>
            <form action="index.php?act=renameContent&filename=<?= $filename ?>&path=<?= $path?>" method="post">
                <table width="40%" border="1" cellpadding="5" cellspacing="0" bgcolor="#d3d3d3">
                    <tr >
                        <td>请输入新文件名称</td>
                        <td>
                            <input type="text" name="newName" value="<?= $fileInfo['filename'] ?>">
                            <input type="hidden" name="extension" value="<?= $fileInfo['extension'] ?>">
                            <input type="submit" value="修改">
                        </td>
                    </tr>
                </table>
            </form>
            <?php
         } else {
              $newName = $path . '/' .$_POST['newName'].'.'.$_POST['extension'];
              $checkName = checkName($newName);
              if($checkName['code'] == 1){
                  alertMeg($checkName['msg'],$redirect);
              }

             if(rename($filename,$newName)){
                alertMeg('修改名称成功',$redirect);
             } else {
                alertMeg('修改名称失败',$redirect);
            }
    }
    }
    //复制文件
    if ($act && $act == 'copeContent') {
        if ($_SERVER['REQUEST_METHOD'] == 'GET') {
            ?>
            <form action="index.php?act=copeContent&path=<?= $path?>&filename=<?= $filename?>" method="post">
                <table width="40%" border="1" cellpadding="5" cellspacing="0" bgcolor="#d3d3d3">
                    <tr >
                        <td>复制到</td>
                        <td>
                            <input type="text" name="dstname"  placeholder="文件夹名称">
                            <input type="submit" value="复制">
                        </td>
                    </tr>
                </table>
            </form>
            <?php
        } else {
            $dstname = $_POST['dstname'];
            $mes = copFile($filename,$path.'/'.$dstname);
            alertMeg($mes,$redirect);
        }
    }
    //剪切文件
    if ($act && $act == 'cutContent') {
        if ($_SERVER['REQUEST_METHOD'] == 'GET') {
            ?>
            <form action="index.php?act=cutContent&path=<?= $path?>&filename=<?= $filename?>" method="post">
                <table width="40%" border="1" cellpadding="5" cellspacing="0" bgcolor="#d3d3d3">
                    <tr >
                        <td>剪切到</td>
                        <td>
                            <input type="text" name="dstname"  placeholder="文件夹名称">
                            <input type="submit" value="剪切">
                        </td>
                    </tr>
                </table>
            </form>
            <?php
        } else {
            $dstname = $_POST['dstname'];
            $mes = cutFile($filename,$path.'/'.$dstname);
            alertMeg($mes,$redirect);
        }
    }
        //删除文件
    if ($act && $act == 'delContent') {
       if(!file_exists($filename)){
           alertMeg('要删除的文件不存在',$redirect);
       }
       if(unlink($filename)){
           alertMeg('删除成功',$redirect);
       }else{
           alertMeg('删除失败',$redirect);
       }
    }
    //上传文件
    if($act && $act == 'uploadFile'){
       $myFile = $_FILES['myFile'];
       print_r($myFile);
       $mes = uploadFile($myFile,$path);
       alertMeg($mes,$redirect);
    }
    //下载文件
    if ($act && $act == 'downContent') {
        downFile($filename);
    }


    //创建文件夹
    if ($act && $act == 'createDir') {
        $dirname = $_POST['dirname'];
        $mes = createDir($path . '/' . $dirname);
        alertMeg($mes,$redirect);
    }
    //复制文件夹
    if ($act && $act == 'copyDir') {
//          echo $path.'----'.$dirname;die;
        if ($_SERVER['REQUEST_METHOD'] == 'GET') {
            ?>
            <form action="index.php?act=copyDir&path=<?= $path?>&dirname=<?= $dirname?>" method="post">
                <table width="40%" border="1" cellpadding="5" cellspacing="0" bgcolor="#d3d3d3">
                    <tr >
                        <td>复到到</td>
                        <td>
                            <input type="text" name="dstname"  placeholder="文件夹名称">
                            <input type="submit" value="复制">
                        </td>
                    </tr>
                </table>
            </form>
            <?php
        } else {
            $dstname = $_POST['dstname'];
          //  print_r($path.'/'.$dstname.'/'.basename($dirname));die;
            $mes = copyDir($dirname,$path.'/'.$dstname.'/'.basename($dirname));
            alertMeg($mes,$redirect);
        }
    }
    //重命名文件夹
    if ($act && $act == 'renameDir') {
        if ($_SERVER['REQUEST_METHOD'] == 'GET') {
                    ?>
                    <form action="index.php?act=renameDir&dirname=<?= $dirname ?>&path=<?= $path ?>"
                          method="post">
                        <table width="40%" border="1" cellpadding="5" cellspacing="0" bgcolor="#d3d3d3">
                            <tr>
                                <td>请输入新文件夹名称</td>
                                <td>
                                    <input type="text" name="newDirName" value="">
                                    <input type="submit" value="修改">
                                </td>
                            </tr>
                        </table>
                    </form>
                    <?php
                } else {
                    $newName = $path . '/' . $_POST['newDirName'];
                    $checkName = checkName($newName);
                    if ($checkName['code'] == 1) {
                        alertMeg($checkName['msg'], $redirect);
                    }

                    if (rename($dirname, $newName)) {
                        alertMeg('修改名称成功', $redirect);
                    } else {
                        alertMeg('修改名称失败', $redirect);
                    }
                }

    }
    //剪切文件夹
    if ($act && $act == 'cutDir') {
//       echo $path.'----'.$dirname;die;
        if ($_SERVER['REQUEST_METHOD'] == 'GET') {
            ?>
            <form action="index.php?act=cutDir&path=<?= $path?>&dirname=<?= $dirname?>" method="post">
                <table width="40%" border="1" cellpadding="5" cellspacing="0" bgcolor="#7fff00">
                    <tr >
                        <td>剪切到</td>
                        <td>
                            <input type="text" name="dstname"  placeholder="文件夹名称">
                            <input type="submit" value="剪切">
                        </td>
                    </tr>
                </table>
            </form>
            <?php
        } else {
            $dstname = $_POST['dstname'];
            $mes = cutDir($dirname,$path.'/'.$dstname);
            alertMeg($mes,$redirect);
        }
    }
    //删除文件夹
    if ($act && $act == 'delDir') {
        $mes = delDir($dirname);
        alertMeg($mes,$redirect);
    }


?>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件管理器</title>
    <style type="text/css">
        .image{
            width: 20px;height: 20px;
        }
        .topImage{
            width: 38px;height: 38px;
        }
        /*#inputTable{*/
            /*width :40%;*/
            /*border:1px;*/
            /*cellpadding:5px;*/
            /*cellspacing:0px;*/
            /*bgcolor:#d3d3d3;*/
        /*}*/
    </style>
</head>
<body>

<div id="top">
    <a href="index.php" ><img title="主页" class="topImage" src="icon/home.png"></a>
    <a href="#" onclick="showFile('createFile')"><img title="创建文件" class="topImage" src="icon/createfile.png"></a>
    <a href="#" onclick="showFile('uploadFile')"><img title="上传文件" class="topImage" src="icon/upload.png"></a>
    <a href="#" onclick="showFile('createDir')"><img title="创建文件夹" class="topImage" src="icon/createfolder.png"></a>
    <?php $back = ($path == 'file') ? 'file' : "'".dirname($path)."'"?>
    <a href="#" onclick="back(<?php echo $back ?>)"><img title="返回" class="topImage" src="icon/return.png"></a>
</div>


    <table id="inputTable" width="40%" border="1" cellpadding="5" cellspacing="0" bgcolor="#d3d3d3">
        <tr id="createFile" style="display:none" >
            <form action="index.php" method="post">
            <td>请输入文件名称</td>
            <td>
                <input type="text" name="filename">
                <input type="hidden" name="act" value="createFile">
                <input type="hidden" name="path" value="<?= $path?>">
                <input type="submit" value="创建文件">
            </td>
            </form>
        </tr>
        <tr id="createDir" style="display:none">
            <form action="index.php" method="post">
            <td>请输入文件夹名称</td>
            <td>
                <input type="text" name="dirname">
                <input type="hidden" name="act" value="createDir">
                <input type="hidden" name="path" value="<?= $path?>">
                <input type="submit" value="创建文件夹">
            </td>
            </form>
        </tr>
        <tr id="uploadFile" style="display:none" >
            <form action="index.php" method="post" enctype="multipart/form-data">
                <td>请选择文件</td>
                <td>
                    <input type="file" name="myFile">
                    <input type="hidden" name="act" value="uploadFile">
                    <input type="hidden" name="path" value="<?= $path?>">
                    <input type="submit" value="上传">
                </td>
            </form>
        </tr>
    </table>


<table width="100%" align="center" border="1" cellpadding="5" cellspacing="0" bgcolor="white">
    <tr bgcolor="#808080">
        <td>编号</td>
        <td>名称</td>
        <td>类型</td>
        <td>大小</td>
        <td>是否可读</td>
        <td>是否可写</td>
        <td>是否可执行</td>
        <td>创建时间</td>
        <td>修改时间</td>
        <td>访问时间</td>
        <td>操作</td>
    </tr>
        <?php
        if (isset($info['file'])) {
            $i = 1;
            foreach ($info['file'] as $v) {
                $p = $path.'/'.$v;
              ?>
                <tr>
                    <td><?= $i?></td>
                    <td><?= $v?></td>
                    <td><?php $filetype = filetype($p)?><img class="image" src="icon/<?= $filetype?>.png"></td>
                    <td><?= getFileSize(filesize($p))?></td>
                    <td><?php $isReadable = is_readable($p) ? 'allow' : 'prohibit' ?><img class="image" src="icon/<?= $isReadable?>.png"></td>
                    <td><?php $isWritable = is_writable($p) ? 'allow' : 'prohibit' ?><img class="image" src="icon/<?= $isWritable?>.png"></td>
                    <td><?php $isExecutable = is_executable($p) ? 'allow' : 'prohibit' ?><img class="image" src="icon/<?= $isExecutable?>.png"></td>
                    <td><?= date("Y-m-d H:i:s",filectime($p)) ?></td>
                    <td><?= date("Y-m-d H:i:s",filemtime($p)) ?></td>
                    <td><?= date("Y-m-d H:i:s",fileatime($p)) ?></td>
                    <td>
                        <a href="index.php?act=showContent&filename=<?= $p?>&path=<?= $path?>"><img title="查看" class="image" src="icon/see.png"></a>
                        <a href="index.php?act=editContent&filename=<?= $p?>&path=<?= $path?>"><img title="编辑" class="image" src="icon/edit.png"></a>
                        <a href="index.php?act=renameContent&filename=<?= $p?>&path=<?= $path?>"><img title="重命名" class="image" src="icon/rename.png"></a>
                        <a href="index.php?act=copeContent&filename=<?= $p?>&path=<?= $path?>"><img title="复制" class="image" src="icon/copy.png"></a>
                        <a href="index.php?act=cutContent&filename=<?= $p?>&path=<?= $path?>"><img title="剪切" class="image" src="icon/shear.png"></a>
                        <a href="index.php?act=delContent&filename=<?= $p?>&path=<?= $path?>"><img title="删除" class="image" src="icon/delete.png"></a>
                        <a href="index.php?act=downContent&filename=<?= $p?>"><img title="下载" class="image" src="icon/download.png"></a>
                    </td>
                </tr>
        <?php
                $i++;
            }
        }
        ?>

    <?php
    if (isset($info['dir'])) {
        foreach ($info['dir'] as $v) {
            $p = $path.'/'.$v;
            ?>
            <tr>
                <td><?= isset($i) ? $i :1?></td>
                <td><?= $v?></td>
                <td><?php $filetype = filetype($p)?><img class="image" src="icon/<?= $filetype?>.png"></td>
                <td><?php $dirSum = 0; echo getFileSize(dirSize($p)) //遍历时清空全局变量,防止累加?></td>
                <td><?php $isReadable = is_readable($p) ? 'allow' : 'prohibit' ?><img class="image" src="icon/<?= $isReadable?>.png"></td>
                <td><?php $isWritable = is_writable($p) ? 'allow' : 'prohibit' ?><img class="image" src="icon/<?= $isWritable?>.png"></td>
                <td><?php $isExecutable = is_executable($p) ? 'allow' : 'prohibit' ?><img class="image" src="icon/<?= $isExecutable?>.png"></td>
                <td><?= date("Y-m-d H:i:s",filectime($p)) ?></td>
                <td><?= date("Y-m-d H:i:s",filemtime($p)) ?></td>
                <td><?= date("Y-m-d H:i:s",fileatime($p)) ?></td>
                <td>
                    <a href="index.php?path=<?= $p?>"><img title="查看"  class="image" src="icon/see.png"></a>
                    <a href="index.php?act=copyDir&path=<?= $path?>&dirname=<?= $p?>"><img title="复制" class="image" src="icon/copy.png"></a>
                    <a href="index.php?act=renameDir&path=<?= $path?>&dirname=<?= $p?>"><img title="重命名"  class="image" src="icon/rename.png"></a>
                    <a href="index.php?act=cutDir&path=<?= $path?>&dirname=<?= $p?>"><img title="剪切" class="image" src="icon/shear.png"></a>
                    <a href="index.php?act=delDir&path=<?= $path?>&dirname=<?= $p?>"><img title="删除" class="image" src="icon/delete.png"></a>
                </td>
            </tr>
            <?php
            @$i++;
        }
    }
    ?>



</table>

</body>
</html>
<script type="text/javascript">

    //展示隐藏的输入框
    function showFile(dis) {
        document.getElementById(dis).style.display = "block";
    }

    //删除文件(有问题的会出发showFile())
    function delfile() {

        alert('112');
        if(window.confirm('确定删除')){
            location.href="index.php?act=delContent&filename="+filename
        }
    }

    function back(back) {
        location.href ="index.php?path="+back;
    }
</script>
<?php
/**
 * Created by PhpStorm.
 * User: shanxiongtao
 * Date: 2019/12/3
 * Time: 20:27
 */

/**
 * 封装函数打开指定目录
 * @param $path
 * @return array
 */
function readDirectory($path){
    $handle = opendir($path);
   // print_r($handle);die;
    $arr = [];
    while (($item = readdir($handle)) !== false){
        if($item != '.' && $item != '..'){
            if(is_file($path.'/'.$item)){
                $arr['file'][] = $item;
            }
            if(is_dir($path.'/'.$item)){
                $arr['dir'][] = $item;
            }
        }
    }
    closedir($handle);
    return $arr;
}

/**
 * 递归获取文件夹大小
 * @param $path
 * @return array
 */
function dirSize($path){
    global $dirSum;//定义全局变量
    $handle = opendir($path);
    while (($item = readdir($handle)) !== false){
        if($item != '.' && $item != '..'){
            if(is_file($path.'/'.$item)){
                $dirSum += filesize($path.'/'.$item);//求和文件大小
            }
            if(is_dir($path.'/'.$item)){//如果文件夹继续求和
                dirSize($path.'/'.$item);
            }
        }
    }
    closedir($handle);
    return $dirSum;
}

/**
 * 求文件大小 Bytes/KB/MB/GB/TB
 * @param $size
 * @return string
 */
function getFileSize($size){
    $arr = ['b','Kb','Mb','Gb','Tb'];
    $i = 0;
    while ($size >= 1024){
        $size /= 1024;
        $i++;
    }
    return round($size,2).$arr[$i];
}

/**
 * 创建文件
 * @param $fileName
 * @return string
 */
function createFile($fileName)
{
    $checkName = checkName($fileName);
    if ($checkName['code'] == 0) {
        if (touch($fileName)) {
            return $fileName . "文件创建成功";
        } else {
            return $fileName . "文件创建失败";
        }
    } else {
        return $checkName['msg'];
    }
}

/**
 * 检测名称
 * @param $fileName
 * @return bool|string
 */
function checkName($fileName){
    $return = ['code' => 0, 'msg' => 'success'];

    if(empty($fileName)){
        return $return = [
            'code' => 1,
            'msg' => "文件名称不可为空"
        ];
    }

    //验证文件名称的合法性
    $pattern = "/[\/,\*,<>,\?\|]/";
    if (preg_match($pattern, basename($fileName))) {
        return $return = [
            'code' => 1,
            'msg' => $fileName . "文件名称不合法"
        ];
    }

    //检测当前目录是否存在同名文件
    if(file_exists($fileName)){
        return $return = [
            'code' => 1,
            'msg' => $fileName . "文件已经存在"
        ];
    }

    return $return;
}

/**
 * 检测文件夹名称
 * @param $dst
 * @return array
 */
function checkDirName($dst){
    $return = ['code' => 0, 'msg' => 'success'];

    if(!file_exists($dst)){
        return $return = [
            'code' => 1,
            'msg' => "目标文件夹不存在"
        ];
    }

    if(!is_dir($dst)){
        return $return = [
            'code' => 1,
            'msg' => "目标不是文件夹"
        ];
    }
    return $return;
}

/**
 * 提示和跳转函数
 * @param $mes
 * @param string $url
 */
function alertMeg($mes, $url = 'index.php')
{
    echo "<script>alert('{$mes}');location.href='$url';</script>";
}

/**
 * 下载文件
 * @param $fileName
 */
function downFile($fileName){
    header("content-disposition:attachment;filename=".basename($fileName));
    header("content-length:".filesize($fileName));
    readfile($fileName);
}

/**
 * 创建文件夹
 * @param $dirname
 * @return string
 */
function createDir($dirname)
{
    $checkName = checkName($dirname);
    if ($checkName['code'] == 0) {
        if (mkdir($dirname,0777,true)) {
            return $dirname . "创建成功";
        } else {
            return $dirname . "创建失败";
        }
    } else {
        return $checkName['msg'];
    }
}

/**
 * 复制文件夹
 * @param $path
 * @return array
 */
function copyDir($src,$dst){
    if(!file_exists($dst)){
        mkdir($dst,0777,true);
    }
    $handle = opendir($src);
    while (($item = readdir($handle)) !== false){
        if($item != '.' && $item != '..'){
            if(is_file($src.'/'.$item)){
                copy($src.'/'.$item,$dst.'/'.$item);
            }
            if(is_dir($src.'/'.$item)){//如果文件夹继续
                copyDir($src.'/'.$item,$dst.'/'.$item);
            }
        }
    }
    closedir($handle);
    return "复制成功";
}

/**
 * 剪切文件夹
 * @param $src
 * @param $dst
 * @return string
 */
function cutDir($src,$dst){

    $checkDirName = checkDirName($dst);
    if($checkDirName['code'] == 1){
        return $checkDirName['msg'];
    }

    if(file_exists($dst.'/'.basename($src))){
        return '存在同名文件夹';
    }

    if(rename($src,$dst.'/'.basename($src))){
        return '剪切成功';
    }else{
        return '剪切失败';
    }
}

/**
 * 删除文件夹
 * @param $path
 * @return string
 */
function delDir($path){
   // return $path;
    $handle = opendir($path);
    while (($item = readdir($handle)) !== false){
        if($item != '.' && $item != '..'){
            if(is_file($path.'/'.$item)){
                unlink($path.'/'.$item);
            }
            if(is_dir($path.'/'.$item)){//如果文件夹继续
                delDir($path.'/'.$item);
            }
        }
    }
    closedir($handle);
    rmdir($path);
    return "删除成功";
}

/**
 * 复制文件
 * 文件名称 $filename
 * 要复制的路径 $dst
 * @return mixed|string
 */
function copFile($filename,$dst){

    $checkDirName = checkDirName($dst);
    if($checkDirName['code'] == 1){
        return $checkDirName['msg'];
    }

    if(file_exists($dst.'/'.basename($filename))){
        return '存在同名文件';
    }
    if(copy($filename,$dst.'/'.basename($filename))){
        return '复制成功';
    }else{
        return '复制失败';
    }
}

/**
 * 剪切文件
 * 文件名称 $filename
 * 要复制的路径 $dst
 * @return mixed|string
 */
function cutFile($filename,$dst){

    $checkDirName = checkDirName($dst);
    if($checkDirName['code'] == 1){
        return $checkDirName['msg'];
    }

    if(file_exists($dst.'/'.basename($filename))){
        return '存在同名文件';
    }
    if(rename($filename,$dst.'/'.basename($filename))){
        return '剪切成功';
    }else{
        return '剪切失败';
    }
}

/**
 * 上传文件
 * @param $myFile
 * @param $path
 * @return mixed|string
 */
function uploadFile($myFile,$path){
    $allowEXT = ['gif','jpg','png','txt','doc','docx'];
    $maxSize = 10485760; //10M

    //检测上传路径合法性
    $checkDirName = checkDirName($path);
    if($checkDirName['code'] == 1){
        return $checkDirName['msg'];
    }

    if($myFile['error'] != 0){
        switch ($myFile['error']){
            case 1:
                $msg = '上传的文件超过了配置大小';break;
            case 2:
                $msg = '上传文件的大小超过表单限制';break;
            case 3:
                $msg = '文件只有部分被上传';break;
            case 4:
                $msg = '没有文件被上传';break;
            case 6:
                $msg = '找不到临时文件夹';break;
            case 7:
                $msg = '文件写入失败';break;
        }
        return $msg;
    }

    if(!is_uploaded_file($myFile['tmp_name'])){
        return '不是通过http的POST方式上传';
    }

    if(!in_array(getExt($myFile['name']),$allowEXT)){
        return '上传文件类型不合法';
    }

    if($myFile['size'] >= $maxSize){
        return '上传文件过大';
    }
    $fileName = pathinfo($myFile['name'],PATHINFO_FILENAME);
    $fileExt = getExt($myFile['name']);

    $destination = $path.'/'.$fileName.'_'.getUnique().'.'.$fileExt;
    if(move_uploaded_file($myFile['tmp_name'],$destination)){//
        return '上传成功';
    }else{
        return '上传失败';
    }
}

/**
 * 获取文件的扩展名
 * @param $filename
 * @return string
 */
function getExt($filename){
    if(empty($filename)){
        return '';
    }
    return strtolower(pathinfo($filename,PATHINFO_EXTENSION));
}

/**
 * 获取唯一值
 * 长度 $len
 * @return bool|string
 */
function getUnique($len = 10){
    return substr(md5(uniqid(microtime(true),true)),0,$len);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值