PHP文件上传类

<?php
class Upload{
    private $tmp_name;
    private $filename;
    private $ext;
    private $path="upload/";
    private $error;
    private $size;
    function __construct(){
        //单个图片上传
    }

    function upload_file($file){
    //文件上传
        $this->size=$file['size'];
        $this->tmp_name=$file['tmp_name'];
        $this->error=$file['error'];

        //文件上传错误码
        $res=$this->chackError();
        if ($res['code']) {
            return $res;
        }
        //检查文件大小
        if ($this->size>1024000) {
            $res=array('code'=>10,'msg'=>'size too big');
            return $res;
        }
        //检查文件类型
        $res=$this->chackType();
        if ($res['code']) {
            return $res;
        }
        $m=move_uploaded_file($this->tmp_name, $this->getFileName());
        if ($m) {
            $res=array('code'=>0,'msg'=>'ok');
        }else{
            $res=array('code'=>11,'msg'=>'文件move失败');

        }
        return $res;
    }

    function chackError(){
        switch ($this->error) {
            case '0':$res=array('code'=>0,'msg'=>'ok');
                # code...
                break;
            case '1':$res=array('code'=>1,'msg'=>'size upload_max_filesize ');
                # code...
                break;
            case '2':$res=array('code'=>2,'msg'=>'size MAX_FILE_SIZE ');
                # code...
                break;
            case '3':$res=array('code'=>3,'msg'=>'文件只有部分上传');
                # code...
                break;
            case '4':$res=array('code'=>4,'msg'=>'没有文件上传');
                # code...
                break;
            case '5':$res=array('code'=>5,'msg'=>'服务器临时文件夹丢失');
                # code...
                break;
            case '6':$res=array('code'=>6,'msg'=>'写入临时文件夹出错');
                # code...
                break;      
            default:$res=array('code'=>7,'msg'=>'未知错误');
                # code...
                break;
        }
        return $res;
    }

    function chackType(){
        //检查文件类型
        $s=@getimagesize($this->tmp_name);
        $res=array('code'=>0,'msg'=>'ok');
        if ($s) {
            switch ($s['mime']) {
                case 'image/gif':
                $this->ext="gif";break;
                case 'image/jpeg':
                $this->ext="jpeg";break;
                case 'image/png':
                $this->ext="png";break;
                case 'image/x-icon':
                $this->ext="x-icon";break;
                default:
                $res=array('code'=>8,'msg'=>'gif png jpeg x-icon');
                    break;
            }
        }else{
            $res=array('code'=>9,'msg'=>'getimagesize error');
        }
        return $res;
    }
    function getFileName(){
        //获取文件名
        $dir=$this->path.date("Y-m-d",time());
        $filename=date("h-i-s-",time()).rand(1000,9999);
        if (!is_dir($dir)) {
            mkdir($dir);
        }
        $this->filename=$dir."/".$filename.".".$this->ext;
        return $this->filename;
    }
}



header("Content-Type:text/html;charset=utf-8");
echo "<pre>";
var_dump($_FILES);
echo "</pre>";


$f=new Upload;
$res=$f->upload_file($_FILES['file1']);
echo "<pre>";
var_dump($res);
echo "</pre>";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值