成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

跟著阿大學(xué)CodeIgniter (二)—— 文件上傳

crelaber / 3555人閱讀

摘要:文件名中的擴(kuò)展名也必須是允許的文件類型。注意通常也有這項(xiàng)限制,可以在文件中指定。上傳文件的高度最大值像素為單位。


阿大說,為做一張配圖,還要換系統(tǒng),好苦13 ╮(╯-╰)╭

原生php上傳

在使用CI之前,我們來看看用原生代碼是如何上傳的,做個(gè)對比,就知道CI有多么方便~

首先創(chuàng)建一個(gè)視圖ci/application/views/uploader1.php

表單的 action 填寫調(diào)用的控制器的上傳方法"upload1/up",這個(gè)將在下一步代碼中完成控制器具體內(nèi)容

填寫method,get或post

當(dāng)表單需要上傳時(shí),應(yīng)填寫"enctype="multipart/form-data""

然后寫控制器ci/application/controllers/upload1.php

move_uploaded_file() 是PHP的一個(gè)內(nèi)置方法,把上傳好的文件從緩存處移到你想要的位置

 load -> view("uploader1.php"); //調(diào)用視圖
    }

    function up() //這個(gè)就是視圖里action調(diào)用的上傳接口
    {
        if (!empty($_POST["sub"])) { //當(dāng)提交的時(shí)候
            // var_dump($_FILES["upfile"]); 可以打印看看上傳文件的信息
            $f = $_FILES["upfile"]; //把文件信息賦給一個(gè)變量,方便調(diào)用
            if ($f["size"] > 102400) { //限制文件大小
                echo "too large";
            } else {
                if ($f["type"] == "image/png") { //限制文件類型為png
                    $t = time(); // 時(shí)間戳
                    $s = ".png";
                    move_uploaded_file($f["tmp_name"], move_uploaded_file($f["tmp_name"], "./uploads/".$t.$s);
                    //$f["tmp_name"]是上傳好的文件從緩存文件,"/uploads/$t$s"是我們要移動(dòng)到的文件夾,在根目錄下自己創(chuàng)建的uploads文件夾。"./uploads/".$t.$s 是變量的值進(jìn)行字符串拼接,把文件以時(shí)間戳命名
                }
            }
        }
    }
}
?>

現(xiàn)在可以訪問localhost/ci/index.php/upload進(jìn)行上傳文件了

CI文件上傳

CI有一個(gè)豐富的上傳類upload,它的源碼放在system/libraries/upload.php。我們可以輕松的調(diào)用它完成一系列操作。

定義一個(gè)數(shù)組,存放設(shè)置

引用CI 的 upload類,使用do_upload("上傳框的name")方法進(jìn)行上傳。若上傳文件的input的name是userfile,則此方法不用帶參數(shù)??梢钥吹絬pload類的源碼里此處有個(gè)默認(rèn)值就是userfile。

接收成功或出錯(cuò)信息。
> 成功:$this -> upload -> data()
> 錯(cuò)誤:$this -> upload -> display_errors()

首先創(chuàng)建一個(gè)視圖ci/application/views/uploader2.php

注意此處 action 改為 "upload2/up",其他不變

然后寫控制器ci/application/controllers/upload2.php

設(shè)置參數(shù)更多:

名稱 介紹
upload_path 文件上傳路徑。該路徑必須是可寫的,相對路徑和絕對路徑均可以。
allowed_types 允許上傳文件的MIME類型;通常文件擴(kuò)展名可以做為MIME類型. 允許多個(gè)類型用豎線分開
file_name 想要使用的文件名,如果設(shè)置了這個(gè)參數(shù),CodeIgniter 將根據(jù)這里設(shè)置的文件名來對上傳的文件進(jìn)行重命名。文件名中的擴(kuò)展名也必須是允許的文件類型。
max_size 允許上傳文件大小的最大值(以K為單位)。該參數(shù)為0則不限制。注意:通常PHP也有這項(xiàng)限制,可以在php.ini文件中指定。通常默認(rèn)為2MB。
max_width 上傳文件的寬度最大值(像素為單位)。0為不限制。
max_height 上傳文件的高度最大值(像素為單位)。0為不限制。
 load -> view("uploader2.php");
    }

    function up()
    {
        // 把需要的配置放入config數(shù)組
        $config["upload_path"] = "./uploads";
        $config["allowed_types"] = "gif|jpg|png";
        $config["max_size"] = "102400";
        $this -> load -> library("upload", $config); //調(diào)用CI的upload類
        $this -> upload -> do_upload("upfile"); //使用do_upload("上傳框的name")方法進(jìn)行上傳

        // 以下代碼為拓展的,非必要
        if ($this -> upload -> do_upload("upfile")) { //上傳成功
            $data = array("upload_data" => $this -> upload -> data()); //將文件信息存入數(shù)組
            var_dump($data); //打印文件信息
        } else { //上傳失敗
            $error = array("error" => $this -> upload -> display_errors());//將錯(cuò)誤信息存入數(shù)組
            var_dump($error); //打印錯(cuò)誤信息
        }
    }
}
?>

現(xiàn)在可以訪問localhost/ci/index.php/upload2進(jìn)行上傳文件了

小結(jié)

CI的上傳類是我們上傳更方便,代碼量少,并且很整潔

本系列文章

跟著阿大學(xué)CodeIgniter (一)——了解MVC
跟著阿大學(xué)CodeIgniter (二)—— 文件上傳
跟著阿大學(xué)CodeIgniter (三)—— 操作數(shù)據(jù)庫

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/20660.html

相關(guān)文章

  • 跟著阿大學(xué)CodeIgniter (一)——了解MVC

    摘要:它提供一套豐富的標(biāo)準(zhǔn)庫以及簡單的接口和邏輯結(jié)構(gòu),其目的是使開發(fā)人員更快速地進(jìn)行項(xiàng)目開發(fā)。文件放在里類名首字母必須大寫,并繼承的類訪問的路徑為項(xiàng)目名入口控制器名控制器的方法參數(shù)。 有的沒的 showImg(http://segmentfault.com/img/bVbOml);阿大鎮(zhèn)文(-_-メ)~ 阿大你太黑了,回去洗把臉看看有沒有救~ 學(xué)習(xí)背景 CI是一個(gè)比較流行的PHP MV...

    wenzi 評論0 收藏0
  • 跟著阿大學(xué)CodeIgniter (三)—— 操作數(shù)據(jù)庫

    摘要:提供了強(qiáng)大的數(shù)據(jù)庫函數(shù)類,源碼是文件。配置數(shù)據(jù)庫文件到進(jìn)行必要的配置,把數(shù)據(jù)庫名密碼編碼等填寫好。本系列文章跟著阿大學(xué)一了解跟著阿大學(xué)二文件上傳跟著阿大學(xué)三操作數(shù)據(jù)庫 碎碎念 過年還來SegmentFault學(xué)習(xí)的都是好少年~ showImg(http://segmentfault.com/img/bVbQOE); 知識重點(diǎn) 涉及到數(shù)據(jù)庫,就是比較復(fù)雜的內(nèi)容了,所以本文略長,但...

    eechen 評論0 收藏0
  • 跟著阿大學(xué)CodeIgniter (四)——登錄驗(yàn)證

    摘要:鎮(zhèn)文圖什么是是用于保持狀態(tài)的基于服務(wù)器的方法。可以簡單理解為服務(wù)器給用戶生成了一個(gè)通行證。建立文件意味著我們待會(huì)要用到控制器的函數(shù)退出調(diào)用控制器的函數(shù)編寫控制器類接下來,我們要一步步往這個(gè)類里面加功能。 鎮(zhèn)文圖 showImg(http://segmentfault.com/img/bVbSFL); 什么是Session Session是用于保持狀態(tài)的基于Web服務(wù)器的方法。可以...

    xiaowugui666 評論0 收藏0
  • CodeIgniter 4 建議路線圖

    摘要:核心變化從第一版發(fā)布以來,社區(qū)發(fā)生了巨大變化。這意味著系統(tǒng)必須全部重寫。暫時(shí)不會(huì)為一個(gè)即將停止支持的版本發(fā)布新版本。路由路由功能將被更新。改進(jìn)的日志系統(tǒng)日志系統(tǒng)將被改進(jìn),但具體細(xì)節(jié)尚未確定。第一階段第一階段將側(cè)重于抓住框架最重要的部分。 我們綜合考慮了社區(qū)的愿望和意見后,也對什么樣的未來對 CI 是最合適的做了一些思考,然后,CI 理事會(huì)對框架的未來做出了一些決策。預(yù)告一下,未來將會(huì)有...

    sean 評論0 收藏0
  • CodeIgniter框架之上傳圖片功能的實(shí)現(xiàn)

    摘要:在做一個(gè)網(wǎng)站的發(fā)布作業(yè)模塊,想通過上傳作業(yè)圖片實(shí)現(xiàn)發(fā)布作業(yè)功能。 在做一個(gè)網(wǎng)站的發(fā)布作業(yè)模塊,想通過上傳作業(yè)圖片實(shí)現(xiàn)發(fā)布作業(yè)功能?,F(xiàn)在把實(shí)現(xiàn)過程介紹一下,代碼部分會(huì)有相應(yīng)的注釋以幫助理解,適合新手小白參考,希望大神閱后留下指導(dǎo),莫笑~ 創(chuàng)建上傳表單頁面 新建一個(gè)文件 upload_form.php ,放入如下代碼,并保存到 application/views/ 目錄下: ...

    glumes 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<