摘要:文件名中的擴(kuò)展名也必須是允許的文件類型。注意通常也有這項(xiàng)限制,可以在文件中指定。上傳文件的高度最大值像素為單位。
阿大說,為做一張配圖,還要換系統(tǒng),好苦13 ╮(╯-╰)╭
在使用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
摘要:它提供一套豐富的標(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...
摘要:提供了強(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)容了,所以本文略長,但...
摘要:鎮(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ù)器的方法。可以...
摘要:核心變化從第一版發(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ì)有...
摘要:在做一個(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/ 目錄下: ...
閱讀 1141·2021-08-12 13:24
閱讀 2989·2019-08-30 14:16
閱讀 3315·2019-08-30 13:01
閱讀 2077·2019-08-30 11:03
閱讀 2779·2019-08-28 17:53
閱讀 3092·2019-08-26 13:50
閱讀 2273·2019-08-26 12:00
閱讀 953·2019-08-26 10:38