茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    PHP文件上傳類實(shí)例詳解
    來(lái)源:易賢網(wǎng) 閱讀:1222 次 日期:2016-08-26 16:28:28
    溫馨提示:易賢網(wǎng)小編為您整理了“PHP文件上傳類實(shí)例詳解”,方便廣大網(wǎng)友查閱!

    本文實(shí)例講述了PHP文件上傳類。分享給大家供大家參考,具體如下:

    這里演示了FileUpload.class.php文件上傳類,其中用到了兩個(gè)常量,可在網(wǎng)站配置文件中定義:

    define('ROOT_PATH',dirname(__FILE__)); //網(wǎng)站根目錄

    define('UPDIR','/uploads/'); //上傳主目錄

    具體代碼如下:

    <?php

      //上傳文件類

      class FileUpload {

        private $error;  //錯(cuò)誤代碼

        private $maxsize; //表單最大值

        private $type;  //類型

        private $typeArr = array('image/jpeg','image/pjpeg','image/png','image/x-png','image/gif'); //類型合集

        private $path;  //目錄路徑

        private $today;  //今天目錄

        private $name;  //文件名

        private $tmp;  //臨時(shí)文件

        private $linkpath; //鏈接路徑

        private $linktotay; //今天目錄(相對(duì))

        //構(gòu)造方法,初始化

        public function __construct($_file,$_maxsize) {

           $this->error = $_FILES[$_file]['error'];

           $this->maxsize = $_maxsize / 1024;

           $this->type = $_FILES[$_file]['type'];

           $this->path = ROOT_PATH.UPDIR;

           $this->linktotay = date('Ymd').'/';

           $this->today = $this->path.$this->linktotay;

           $this->name = $_FILES[$_file]['name'];

           $this->tmp = $_FILES[$_file]['tmp_name'];

           $this->checkError();

           $this->checkType();

           $this->checkPath();

           $this->moveUpload();

        }

        //返回路徑

        public function getPath() {

           $_path = $_SERVER["SCRIPT_NAME"];

           $_dir = dirname(dirname($_path));

           if ($_dir == '\\') $_dir = '/';

           $this->linkpath = $_dir.$this->linkpath;

           return $this->linkpath;

        }

        //移動(dòng)文件

        private function moveUpload() {

           if (is_uploaded_file($this->tmp)) {

             if (!move_uploaded_file($this->tmp,$this->setNewName())) {

                Tool::alertBack('警告:上傳失??!');

             }

           } else {

             Tool::alertBack('警告:臨時(shí)文件不存在!');

           }

        }

        //設(shè)置新文件名

        private function setNewName() {

           $_nameArr = explode('.',$this->name);

           $_postfix = $_nameArr[count($_nameArr)-1];

           $_newname = date('YmdHis').mt_rand(100,1000).'.'.$_postfix;

           $this->linkpath = UPDIR.$this->linktotay.$_newname;

           return $this->today.$_newname;

        }

        //驗(yàn)證目錄

        private function checkPath() {

           if (!is_dir($this->path) || !is_writeable($this->path)) {

             if (!mkdir($this->path)) {

                Tool::alertBack('警告:主目錄創(chuàng)建失??!');

             }

           }

           if (!is_dir($this->today) || !is_writeable($this->today)) {

             if (!mkdir($this->today)) {

                Tool::alertBack('警告:子目錄創(chuàng)建失敗!');

             }

           }

        }

        //驗(yàn)證類型

        private function checkType() {

           if (!in_array($this->type,$this->typeArr)) {

             Tool::alertBack('警告:不合法的上傳類型!');

           }

        }

        //驗(yàn)證錯(cuò)誤

        private function checkError() {

           if (!empty($this->error)) {

             switch ($this->error) {

                case 1 :

                  Tool::alertBack('警告:上傳值超過(guò)了約定最大值!');

                  break;

                case 2 :

                  Tool::alertBack('警告:上傳值超過(guò)了'.$this->maxsize.'KB!');

                  break;

                case 3 :

                  Tool::alertBack('警告:只有部分文件被上傳!');

                  break;

                case 4 :

                  Tool::alertBack('警告:沒(méi)有任何文件被上傳!');

                  break;

                default:

                  Tool::alertBack('警告:未知錯(cuò)誤!');

             }

           }

        }

      }

    ?>

    其中,用到了一個(gè)靜態(tài)工具類 Tool.class.php,代碼如下:

    Tool.class.php

    <?php

      class Tool {

         //彈窗返回

         static public function alertBack($_info) {

           echo "<script type='text/javascript'>alert('$_info');history.back();</script>";

           exit();

         }     //彈窗賦值關(guān)閉

         static public function alertOpenerClose($_info,$_path) {

           echo "<script type='text/javascript'>alert('$_info');</script>";

           echo "<script type='text/javascript'>opener.document.content.thumbnail.value='$_path';</script>";

           echo "<script type='text/javascript'>opener.document.content.pic.style.display='block';</script>";

           echo "<script type='text/javascript'>opener.document.content.pic.src='$_path';</script>";

           echo "<script type='text/javascript'>window.close();</script>";

           exit();

         } }

    ?>

    下面進(jìn)行一個(gè)實(shí)例演示,請(qǐng)看下面的步驟:

    1、先創(chuàng)建一個(gè) index.php 頁(yè)面,做一個(gè)表單

    index.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

      <head>

         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

         <title>main</title>

      </head>

      <body>

         <form name="content" method="post" action="?action=add">

         <input type="text" name="thumbnail" class="text" readonly="readonly" /> <input type="button" value="上傳" onclick="centerWindow('./upfile.html','upfile','400','100')" /> <img name="pic" style="display:none;" /> ( * 必須是jpg,gif,png,并且200k內(nèi)) <br />

         </form>

      </body>

    </html>

    2、創(chuàng)建 upfile.html 文件,建立表單提交到 upload.php

    upfile.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

      <head>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>上傳圖片</title>

      </head>

      <body></p><p>   <form method="post" action="./upload.php" enctype="multipart/form-data" style="text-align:center;margin:30px;">

        <input type="hidden" name="MAX_FILE_SIZE" value="204800" />

        <input type="file" name="pic" />

        <input type="submit" name="send" value="確定上傳" />

    </form></p><p></body>

    </html>

    3、通過(guò) upload.php 文件調(diào)用文件上傳類實(shí)現(xiàn)上傳,并且把路徑賦給 input 標(biāo)簽和顯示圖片

    <?php

      require 'FileUpload.class.php';

      if (isset($_POST['send'])) {

        $_fileupload = new FileUpload('pic',$_POST['MAX_FILE_SIZE']);

        $_path = $_fileupload->getPath();

        Tool::alertOpenerClose('文件上傳成功!',$_path);

      } else {

        Tool::alertBack('警告:文件過(guò)大或者其他未知錯(cuò)誤導(dǎo)致瀏覽器崩潰!');

      }

    ?>

    希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP文件上傳類實(shí)例詳解
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026國(guó)考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)