加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 22:17:45 所属栏目:PHP教程 来源:网络整理
导读:? php /* * 文件上传函数 */ function upload_single($file,$allow_type,$path, $error,$allow_format=array(),$max_size= 2000000 ){ // 判断文件是否有效 if (!(is_array($file)isset($file[ " error " ]))){ $error = " 上传文件无效 " ; return false ;
<?php
    /*
     * 文件上传函数
     */
    function upload_single($file,$allow_type,$path,&$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;
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读