当前位置:首页 > CN2资讯 > 正文内容

微型php框架 library/upload.class.php

2天前CN2资讯

上传类库

<?php


class upload {

    protected $allowExt = array('jpg','jpeg','gif','png','bmp');

    protected $allowSize = 1; // 最大上传大小,单位为M


    protected $errno = 0;

    protected $error = array(

        0=>'上传完成',

        1=>'文件超出upload_max_filesize',

        2=>'文件超出表单中 MAX_FILE_SIZE 选项指定的值',

        3=>'文件只有部分被上传',

        4=>'没有文件被上传',

        6=>'找不到临时目录',

        7=>'文件定入失败',

        8=>'文件大小超出配置文件的限制',

        9=>'不允许的文件类型',

        10=>'创建目录失败',

        11=>'未知错误,反思中'

    );


    // 获取后缀

    protected function getExt($file) {

        $ext = strtolower(strrchr($file,'.'));


        return $ext;

    }


    // 检验后缀

    protected function checkExt($ext) {

        return in_array(ltrim($ext,'.'),$this->allowExt);

    }


    // 检验大小

    protected function checkSize($size) {

        return $size <= $this->allowSize * 1000 * 1000;

    }


    // 按日期生成目录

    protected function mk_dir() {

        $dir = date('Y/m/d',time());

        $dir = ROOT . 'data/p_w_picpaths/' . $dir;


        if(!is_dir($dir)) {

            if(!mkdir($dir,0777,true)) {

                return false;

            }

        }


        return $dir;

    }



    // 生成随机文件名

    protected function randName($n = 6) {

        if($n <= 0) {

            return '';

        }


        $str = 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ0123456789';

        $str = substr(str_shuffle($str),0,$n);


        return $str;

    }


    public function up($name) {

        // $_FILES里面有没有$name指定的单元

        if(!isset($_FILES[$name])) {

            return false;

        }


        $f = $_FILES[$name];


        // 判断错误码,是否上传成功

        if(($this->errno = $f['error']) > 0) {

            return false;

        }


        // 判断大小

        if(!$this->checkSize($f['size'])) {

            $this->errno = 8;

            return false;

        }

        

        // 判断类型

        $ext = $this->getExt($f['name']);

        if(!$this->checkExt($ext)) {

            $this->errno = 9;

            return false;

        }


        // 上传,返回路径

        $path = $this->mk_dir();

        if(!$path) {

            $this->errno = 10;

            return false;

        }


        $filename = $this->randName(6);

        $path = $path . '/' . $filename . $ext;


        if(!move_uploaded_file($f['tmp_name'],$path)) {

            $this->errno = 11;

            return false;

        }

        

        $path = str_replace(ROOT,'',$path);

        return $path;

    }


    // 获取错误的接口

    public function getErr() {

        return $this->error[$this->errno];

    }


    // 设置允许的后缀

    public function setExt($arr) {

        $this->allowExt = $arr;

    }


    // 设置最大上传值

    public function setSize($num=2) {

        $this->allowSize = $num;

    }

}



/*

define('ROOT','D:/www/0713/');

$upload = new upload();


if($path = $upload->up('pic')) {

    echo $path,'<br />';

    echo '上传成功';

} else {

    echo $upload->getErr();

}


*/


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26523.html

    分享给朋友:

    “微型php框架 library/upload.class.php” 的相关文章

    如何选择合适的免费VPS服务并有效利用

    免费VPS概述 在研究云计算相关技术的时候,VPS(虚拟专用服务器)成了一个非常重要的概念。简单来说,VPS是一种通过虚拟化技术来划分的服务器,每个VPS都是独立的,用户可以获得与一个物理服务器类似的操作体验。作为个人开发者或中小企业的选择,VPS提供了灵活性和可控性,是许多人搭建网站或开发项目的理...

    企业云计算的首选:Oracle Cloud VPS详解及其优势

    在现代企业日益依赖云计算的背景下,Oracle Cloud VPS(虚拟专用服务器)因其强大的功能和灵活的解决方案,成为了很多企业的热门选择。简单来说,Oracle Cloud VPS通过虚拟化技术将物理服务器划分成多个独立的虚拟服务器,为用户提供了一种安全、可靠且高效的云计算体验。在这里,我将为大...

    全球云服务厂商排名分析:选择适合你的云服务平台

    在如今这个数字化快速发展的时代,云服务已经成为企业运营的核心。全球云服务市场正在以前所未有的速度增长,吸引了众多企业选择不同的云服务提供商。作为用户,当我们谈论云服务厂商时,不可避免地会提到几个行业巨头,显然,他们的市场份额和影响力在整个行业中是不可忽视的。 近年以来,亚马逊网络服务(AWS)稳居全...

    xTom:灵活可靠的IaaS解决方案,为企业提供优秀网络服务

    xTom是一家成立于2012年的私人控股公司,总部位于德国杜塞尔多夫。它专注于基础设施即服务(IaaS),为各种规模的企业提供可靠的网络和数据中心服务。我对这家公司印象深刻,因为他们提供的解决方案不仅全面,而且非常灵活,能够满足不同客户的需求。 作为一个专业的IaaS提供商,xTom涵盖的服务范围非...

    波测评分析及其在医疗与教育领域的重要性

    波测评的定义与重要性 波测评是一种重要的技术手段,专注于评估波动的特性和行为。我发现,这种测评方法在多个行业中都扮演了至关重要的角色,比如医疗、工业和电力等领域。以脑波测评为例,它不仅可以帮助医生了解病人的大脑状态,还能在教育领域评估学习能力。这些应用展示了波测评技术在科学与技术进步中的不可或缺性。...

    OVH云服务概述:高性价比的VPS与专用服务器解决方案

    OVH概述 谈到云服务提供商,OVH无疑是一个引人注意的名字。这家成立于1999年的法国公司,总部位于鲁贝,已经从当初的小公司发展成为全球领先的云服务平台。OVH不仅为个人和企业提供各种云计算解决方案,还持续推动技术创新,满足越来越多用户的需求。 OVH拥有广泛的服务网络,分布在北美、欧洲、亚洲和非...