后端PHP, 封装文件上传函数

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了后端PHP, 封装文件上传函数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP
    /*
     * 文件上传函数
     */
    function upload_single($file,$allow_tyPE,$path,&amp;$error,$allow_format=array(),$max_size=2000000){
        //判断文件是否有效

        if(!(is_array($file)&&isset($file["error"]))){
            $error="上传文件无效";
            return false;
        }
        //判断保存路径是否有效
        if(!is_dir($path)){
            $error="路径错误";
            return false;
        }
        //判断文件上传过程中是都出错
        swITch ($file["error"]){
            case 1:
            case 2:
                $error="文件超出服务器应许大小";
                return false;
            case 3:
                $error="文件上传部分";
                return false;
            case 6:
            case 7:
                $error="文件保存失败";
                return false;
        }

        //判断MIME类型
        if(!in_array($file["type"],$allow_type)){

            PRint_r($file["type"]."<->".$allow_type);
            $error="当前文件不允许上传12";
            return false;
        }

        //判断后缀名是否正确
        $ext=ltrim(strrchr($file["name"],"."),".");

        if(!in_array($ext,$allow_format)&&!empty($allow_format)){
            $error="上传文件是不允许上传的后缀名";
            return false;
        }

        //判断当前文字是否满足这个函数的最大上传
        if($file["size"]>$max_size){
            $error="上传文件过大";
            return false;
        }
        //构建名字:随机构造
        $full_name=strstr($file["type"],"/").date("yyYYmmdd");
        for($i=0;$i<4;++$i){
            $full_name.=chr(mt_rand(65,90));
        }
        //拼凑后缀
        $full_name.=..$ext;
        //移动到指定目录
        if(!is_uploaded_file($file["tmp_name"])){
            $error="错误, 不是上传文件";
            return false;
        }
        if(move_uploaded_file($file["tmp_name"],$path./.$full_name)){
            return $full_name;
        }else{
            $error="文件移动失败";
            return false;
        }

    }

    //提供数据
$file=$_FILES["image"];
    $path="image/";
    $allow_format=array("jpg","JPEG");
    $allow_type=array("image/jpeg","/image/jpg");
$max_size=80000000;
$error;
    if(upload_single($file,$error,$allow_format,$max_size)){
        echo "上传成功!";
    }else{
        echo $error;
    }

脚本宝典总结

以上是脚本宝典为你收集整理的后端PHP, 封装文件上传函数全部内容,希望文章能够帮你解决后端PHP, 封装文件上传函数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。