摘要:文件名中的擴展名也必須是允許的文件類型。注意通常也有這項限制,可以在文件中指定。上傳文件的高度最大值像素為單位。
阿大說,為做一張配圖,還要換系統(tǒng),好苦13 ╮(╯-╰)╭
在使用CI之前,我們來看看用原生代碼是如何上傳的,做個對比,就知道CI有多么方便~
首先創(chuàng)建一個視圖ci/application/views/uploader1.php
表單的 action 填寫調用的控制器的上傳方法"upload1/up",這個將在下一步代碼中完成控制器具體內容
填寫method,get或post
當表單需要上傳時,應填寫"enctype="multipart/form-data""
然后寫控制器ci/application/controllers/upload1.php
move_uploaded_file() 是PHP的一個內置方法,把上傳好的文件從緩存處移到你想要的位置
load -> view("uploader1.php"); //調用視圖 } function up() //這個就是視圖里action調用的上傳接口 { if (!empty($_POST["sub"])) { //當提交的時候 // var_dump($_FILES["upfile"]); 可以打印看看上傳文件的信息 $f = $_FILES["upfile"]; //把文件信息賦給一個變量,方便調用 if ($f["size"] > 102400) { //限制文件大小 echo "too large"; } else { if ($f["type"] == "image/png") { //限制文件類型為png $t = time(); // 時間戳 $s = ".png"; move_uploaded_file($f["tmp_name"], move_uploaded_file($f["tmp_name"], "./uploads/".$t.$s); //$f["tmp_name"]是上傳好的文件從緩存文件,"/uploads/$t$s"是我們要移動到的文件夾,在根目錄下自己創(chuàng)建的uploads文件夾。"./uploads/".$t.$s 是變量的值進行字符串拼接,把文件以時間戳命名 } } } } } ?>
現(xiàn)在可以訪問localhost/ci/index.php/upload進行上傳文件了
CI文件上傳CI有一個豐富的上傳類upload,它的源碼放在system/libraries/upload.php。我們可以輕松的調用它完成一系列操作。
定義一個數組,存放設置
引用CI 的 upload類,使用do_upload("上傳框的name")方法進行上傳。若上傳文件的input的name是userfile,則此方法不用帶參數??梢钥吹絬pload類的源碼里此處有個默認值就是userfile。
接收成功或出錯信息。
> 成功:$this -> upload -> data()
> 錯誤:$this -> upload -> display_errors()
首先創(chuàng)建一個視圖ci/application/views/uploader2.php
注意此處 action 改為 "upload2/up",其他不變
然后寫控制器ci/application/controllers/upload2.php
設置參數更多:
名稱 | 介紹 |
---|---|
upload_path | 文件上傳路徑。該路徑必須是可寫的,相對路徑和絕對路徑均可以。 |
allowed_types | 允許上傳文件的MIME類型;通常文件擴展名可以做為MIME類型. 允許多個類型用豎線分開 |
file_name | 想要使用的文件名,如果設置了這個參數,CodeIgniter 將根據這里設置的文件名來對上傳的文件進行重命名。文件名中的擴展名也必須是允許的文件類型。 |
max_size | 允許上傳文件大小的最大值(以K為單位)。該參數為0則不限制。注意:通常PHP也有這項限制,可以在php.ini文件中指定。通常默認為2MB。 |
max_width | 上傳文件的寬度最大值(像素為單位)。0為不限制。 |
max_height | 上傳文件的高度最大值(像素為單位)。0為不限制。 |
load -> view("uploader2.php"); } function up() { // 把需要的配置放入config數組 $config["upload_path"] = "./uploads"; $config["allowed_types"] = "gif|jpg|png"; $config["max_size"] = "102400"; $this -> load -> library("upload", $config); //調用CI的upload類 $this -> upload -> do_upload("upfile"); //使用do_upload("上傳框的name")方法進行上傳 // 以下代碼為拓展的,非必要 if ($this -> upload -> do_upload("upfile")) { //上傳成功 $data = array("upload_data" => $this -> upload -> data()); //將文件信息存入數組 var_dump($data); //打印文件信息 } else { //上傳失敗 $error = array("error" => $this -> upload -> display_errors());//將錯誤信息存入數組 var_dump($error); //打印錯誤信息 } } } ?>
現(xiàn)在可以訪問localhost/ci/index.php/upload2進行上傳文件了
小結CI的上傳類是我們上傳更方便,代碼量少,并且很整潔
本系列文章跟著阿大學CodeIgniter (一)——了解MVC
跟著阿大學CodeIgniter (二)—— 文件上傳
跟著阿大學CodeIgniter (三)—— 操作數據庫
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20660.html
摘要:它提供一套豐富的標準庫以及簡單的接口和邏輯結構,其目的是使開發(fā)人員更快速地進行項目開發(fā)。文件放在里類名首字母必須大寫,并繼承的類訪問的路徑為項目名入口控制器名控制器的方法參數。 有的沒的 showImg(http://segmentfault.com/img/bVbOml);阿大鎮(zhèn)文(-_-メ)~ 阿大你太黑了,回去洗把臉看看有沒有救~ 學習背景 CI是一個比較流行的PHP MV...
摘要:提供了強大的數據庫函數類,源碼是文件。配置數據庫文件到進行必要的配置,把數據庫名密碼編碼等填寫好。本系列文章跟著阿大學一了解跟著阿大學二文件上傳跟著阿大學三操作數據庫 碎碎念 過年還來SegmentFault學習的都是好少年~ showImg(http://segmentfault.com/img/bVbQOE); 知識重點 涉及到數據庫,就是比較復雜的內容了,所以本文略長,但...
摘要:鎮(zhèn)文圖什么是是用于保持狀態(tài)的基于服務器的方法??梢院唵卫斫鉃榉掌鹘o用戶生成了一個通行證。建立文件意味著我們待會要用到控制器的函數退出調用控制器的函數編寫控制器類接下來,我們要一步步往這個類里面加功能。 鎮(zhèn)文圖 showImg(http://segmentfault.com/img/bVbSFL); 什么是Session Session是用于保持狀態(tài)的基于Web服務器的方法??梢?..
摘要:核心變化從第一版發(fā)布以來,社區(qū)發(fā)生了巨大變化。這意味著系統(tǒng)必須全部重寫。暫時不會為一個即將停止支持的版本發(fā)布新版本。路由路由功能將被更新。改進的日志系統(tǒng)日志系統(tǒng)將被改進,但具體細節(jié)尚未確定。第一階段第一階段將側重于抓住框架最重要的部分。 我們綜合考慮了社區(qū)的愿望和意見后,也對什么樣的未來對 CI 是最合適的做了一些思考,然后,CI 理事會對框架的未來做出了一些決策。預告一下,未來將會有...
摘要:在做一個網站的發(fā)布作業(yè)模塊,想通過上傳作業(yè)圖片實現(xiàn)發(fā)布作業(yè)功能。 在做一個網站的發(fā)布作業(yè)模塊,想通過上傳作業(yè)圖片實現(xiàn)發(fā)布作業(yè)功能。現(xiàn)在把實現(xiàn)過程介紹一下,代碼部分會有相應的注釋以幫助理解,適合新手小白參考,希望大神閱后留下指導,莫笑~ 創(chuàng)建上傳表單頁面 新建一個文件 upload_form.php ,放入如下代碼,并保存到 application/views/ 目錄下: ...
閱讀 1128·2021-08-12 13:24
閱讀 2974·2019-08-30 14:16
閱讀 3303·2019-08-30 13:01
閱讀 2064·2019-08-30 11:03
閱讀 2769·2019-08-28 17:53
閱讀 3079·2019-08-26 13:50
閱讀 2263·2019-08-26 12:00
閱讀 943·2019-08-26 10:38