用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

php 上传文件类

2014-12-01 作者: php源代码大全举报

[php]代码库

<?php
class Test_Upload{

    protected $_uploaded = array();
    protected $_destination;    
    protected $_max = 1024000;
    protected $_messages = array();
    protected $_permited = array(
                                'image/gif',
                                'image/jpeg',
                                'image/pjpeg',
                                'image/png'    
    );
    protected $_renamed = false;

    /**
     * 
     * @param mix $path
     * 
     */
    public function __construct($path){

        if (!is_dir($path) || !is_writable($path)){
            throw new Exception("文件名不可写,或者不是目录!");
        }
        $this->_destination = $path;
        $this->_uploaded = $_FILES;
    }
    /**
     * 移动文件
     * 
     */
    public function move(){

        $filed = current($this->_uploaded);  

        $isOk = $this->checkError($filed['name'], $filed['error']);
        //debug ok
        if ($isOk){
            $sizeOk = $this->checkSize($filed['name'], $filed['size']);
            $typeOk = $this->checkType($filed['name'], $filed['type']);
            if ($sizeOk && $typeOk){

                $success = move_uploaded_file($filed['tmp_name'], $this->_destination.$filed['name']);

                if ($success){
                    $this->_messages[] = $filed['name']."文件上传成功";
                }else {
                    $this->_messages[] = $filed['name']."文件上传失败";
                }
            }

        }
    }
    /**
     * 查询messages数组内容 
     *
     */
    public function getMessages(){
        return $this->_messages;
    }

    /**
     *  检测上传的文件大小
     *  @param mix $string
     *  @param int $size
     */
    public function checkSize($filename, $size){

        if ($size == 0){
            return false;
        }else if ($size > $this->_max){
            $this->_messages[] = "文件超出上传限制大小".$this->getMaxsize();
            return false;
        }else { 
            return true;
        }
    }

    /**
     *  检测上传文件的类型
     *  @param mix $filename
     *  @param mix $type
     */
    protected  function checkType($filename, $type){
        if (!in_array($type, $this->_permited)){
            $this->_messages[] = "该文件类型是不被允许的上传类型";
            return false;
        }else {
            return true;
        }
    }

    /**
     *  获取文件大小
     *  
     */
    public function getMaxsize(){
        return number_format($this->_max / 1024, 1).'KB';
    }

    /**
     * 检测上传错误
     * @param mix $filename
     * @param int $error
     * 
     */
    public function checkError($filename, $error){
        switch ($error){
            case 0 : return true;
            case 1 :
            case 2 : $this->_messages[] = "文件过大!"; return true;
            case 3 : $this->_messages[] = "错误上传文件!";return false;
            case 4 : $this->_messages[] = "没有选择文件!"; return false;
            default : $this->_messages[] = "系统错误!"; return false;
        }
    }
}
?>
//该片段来自于http://yuncode.net


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...