溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-06-24 14:00:55 來源:網(wǎng)絡(luò) 閱讀:241 作者:柯岳ky 欄目:web開發(fā)

上傳類庫

<?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=>'創(chuàng)建目錄失敗',

        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];

    }


    // 設(shè)置允許的后綴

    public function setExt($arr) {

        $this->allowExt = $arr;

    }


    // 設(shè)置最大上傳值

    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();

}


*/


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI