筆記圖解php文件分頁類_第1頁
筆記圖解php文件分頁類_第2頁
筆記圖解php文件分頁類_第3頁
筆記圖解php文件分頁類_第4頁
筆記圖解php文件分頁類_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、文件上傳、分頁類第 1 章1.1課前說明0課前說明0第 2.7第 章ZENDSTUDIO 安裝使用0ZENDSTUDIO 編輯器安裝ZENDSTUDIO 編輯器創(chuàng)建工程刪除工程導(dǎo)入工程設(shè)置字體、顏色、編碼文件重命名03344710文件上傳11章文件上傳的基本介紹、應(yīng)用場景文件上傳的原理說明文件上傳入門案例防止上傳文件過大防止文件被覆蓋分目錄存放上傳的文件控制上傳的文件類型將文件上傳代碼封裝成函數(shù)文件上傳類作業(yè)111114151819212427313.10第 4 章文件. 324.1第 5 章文件32

2、分頁類345.15.2分頁基本介紹具體實現(xiàn)3434第 1 章課前說明1.1課前說明該階段的課程比較綜合,在學(xué)習(xí)的過程中需要多總結(jié)如果遇到理論性比較強的地方,難的地方,需要先實現(xiàn)出來,不理解的地方記 錄到筆記本上,后面在消化(3)不要做的巨人,行動的矮子,代碼要多些,達到孰能生巧第 2 章ZendStudio 安裝使用2.1zendstudio 編輯器安裝先:(1)然后,再輸入碼即可面試時,面試官可能會問:使用什么 IDE 進行開發(fā)?IDE,集成開發(fā)工具2.2zendstudio 編輯器2.3創(chuàng)建工程Zendstudio 是通過項目、工程的形式,進行代碼的管理,所以項目、工程:需要先創(chuàng)建一個Fi

3、le-NewLocalProject2.4刪除工程刪除工程時,一定要注意,如果選中下面的復(fù)選框,將會刪除所有的文件而且不能恢復(fù)。2.5導(dǎo)入工程File-Import-將來可能會遇到這樣的情況:有一個項目不是通過 zendstudio 創(chuàng)建的,那么如何導(dǎo)入到控制臺呢先找一個使用 zendstudio 創(chuàng)建的工程,將里面的.project 文件拷貝到當(dāng)前項目中然后打開該文件:2.6設(shè)置字體、顏色、編碼Window-preference-設(shè)置顏色:設(shè)置編碼:Window-preference2.7文件重命名點擊項目-右擊鼠標(biāo)-Refactor-Rename-回車OK第 3 章文件上傳3.1文件上傳的

4、基本介紹、應(yīng)用場景點擊上傳時,會上傳到哪里去?會將、文件等上傳到服務(wù)器上面,并返回的地址,這樣,只需要給其他用戶提供該文件的地址即可3.2文件上傳的原理說明文件上傳,其實也是通過表單提交的,表單提交的數(shù)據(jù)分為如下兩種:(1)字節(jié)流數(shù)據(jù):輸入框、單選框、復(fù)選框、多行文本域等都是通過字節(jié)的數(shù)據(jù)傳輸?shù)椒?wù)器,服務(wù)器通過$_GET$_T 接收(2)二進制文件流的形式;當(dāng)需要提交一些文件的時候,由于文件采用的二進制的形式進行編碼,所以需要先將二進制文件轉(zhuǎn)碼,然后再提交到服務(wù)器提交的時候,需要通過 input type=”file” 文件域上傳服務(wù)器接收的時候,通過$_FILES 進行接收注意:如何將表單

5、的數(shù)據(jù),以二進制流的形式進行傳輸,必須在表單 form增加一個屬性:enctype=”multipart/form-data”先創(chuàng)建表單文件:upload.html提交之后,在服務(wù)器端接收并打?。篗IME 類型詳解:多用途ernet 郵件擴展,mime 類型的出現(xiàn),跟著電子郵件出現(xiàn)的早期,發(fā)送電子郵件的時候,里面可能會附帶一些附件,計算機系統(tǒng)根據(jù)附件的類型找到對應(yīng)的設(shè)備打開,例如:傳輸?shù)氖?,就會找到器去打開,如果傳輸?shù)氖蔷W(wǎng)頁文件,那么會自動使用瀏覽器去打開MIME 類型,包括 2 個部分:第一個部分是該文件所屬的一個大類,第二個部分是文件細節(jié)小類,例如:text/html,屬于文本文件,htm

6、l 這樣的文本文件image/jpg,屬于圖像大類,jpg 這種類型的圖像tmp_name 詳解:tmp- temptemporary,該單詞的意思是臨時的文件上傳的原理:當(dāng)點擊提交表單時,會將 file 文件域里面的文件,先上傳到臨時的目錄(可以在的配置文件中設(shè)置),默認(rèn)的臨時目錄是 c:/windows/temp,如果需要持久的保存,需要通過的函數(shù) move_uploaded_file()移動到指定的位置,如果不移動,當(dāng)執(zhí)行結(jié)束,臨時文件就會代碼演示一下:休眠 10 秒鐘:由于執(zhí)行的太快,為了看到效果,讓提交表單之后,就會在 c:/windows/temp 目錄下面看到這個臨時文件為了不讓

7、該臨時文件,需要在結(jié)束之前,將該臨時文件移動到服務(wù)器使用的 move_uploaded_file()函數(shù)進行移動的3.3文件上傳入門案例為了方便管理這些上傳的文件,通常會將上傳的文件保存到 uploads 目錄下面3.4防止上傳文件過大思路:首先給定一個文件的最大限制,然后再拿上傳的文件的大小 和 最大的限制進行比較,文件大小是字節(jié),字節(jié)之間的轉(zhuǎn)換:10241024 字節(jié) = 1KB1024KB = 1MB1024MB = 1GB修改一下表單的提交地址:確實了文件的上傳,但是還有一個小問題:雖然上傳時,了,但是該文件還是在臨時的文件夾中走了一圈,如何實現(xiàn),如果文件過大的話,連臨時目錄都不讓其進

8、去需要修改的配置文件了,將其最大的限制修改為 2MB,這樣,讓上傳的文件大小超過 2MB,就無法進入到臨時目錄測試一把:錯誤指的是提交的表單內(nèi)容,超過了表單提交的最大限制,所以為了演示效果,我們臨時將表單提交的最大限制修改為 80MB3.5防止文件被覆蓋如果多個用戶,同時上傳文件,如果文件的名字固定死的話,所有用戶上傳的文件名字都會一樣,將來就很麻煩了思傳成功之后,給文件命名時,取一個唯一的、隨機數(shù)3.6分目錄存放上傳的文件為什么要分目錄?如果上傳的文件不加任何修改,直接保存到 uploads 目錄的話,uploads 目錄就會出現(xiàn)很多文件,不便于查找通常會按照日期的格式分目錄保存3.7控制上

9、傳的文件類型假設(shè)有這樣一個需求:上傳用戶的頭像只能上傳(jpg、png、gif),所以這個時候就應(yīng)該上傳的時候做一個判斷思路:首先,定義一個數(shù)組保存支持的上傳的文件的類型,然后再拿上傳的文件的實際類型和支持的類型進行比較但是,上面的代碼存在一個小問題:如果手動的把一個 excel 文件的后綴修改為.jpg 了,如下所示:上傳的時候,就會把蒙混過去,如果用戶上傳的是(js 等),就會很所以還要做一個更加嚴(yán)格的過濾需要借助提供的類(內(nèi)置的一個類)finfo,在手冊的位置:3.8將文件上傳代碼封裝成函數(shù)為什么要封裝到函數(shù)中?提高上傳文件的代碼的重用性,保證這些代碼能夠在不同的場景中靈活的應(yīng)用封裝到函

10、數(shù)之前,先思考哪些部分將來可能會變化、修改,將這些可能變化的部分以參數(shù)形式傳遞進去,這樣,的函數(shù)更加靈活例如,將來上傳分類的圖標(biāo)了,文件上傳域的 name 是cat_logo詳細代碼參考:2.upload_maxsize. $maxsize) echo 太大了,服務(wù)器撐不下; exit;/2. 防止文件重復(fù)/首先生成一個唯一的隨機數(shù)作為文件的名字/參數(shù)1:前綴/參數(shù)2:布爾值,如果true化,更具有唯一性$filename = uniqid(tn_,true);/確定文件的后綴/strrchr()用來獲得一個字符串中最后一次出現(xiàn)的字符,返回從該字符之后的部分/參數(shù)1:look needle f

11、rom haystack,大海撈針$ext = strrchr($filename, .);$new_filename = $filename.$ext;/3. 分目錄上傳的文件/按照日期創(chuàng)建子目錄$sub_path = date(Ymd)./;/創(chuàng)建目錄,先判斷下 uploads/20170330是否存在,如果不存在則創(chuàng)建該目錄if(!is_dir($destination.$sub_path)mkdir($destination.$sub_path,0777,true);$destination .= $sub_path.$new_filename;/4. 上傳的文件類型是否支持$allo

12、w_type = array(image/jpeg,image/jpg,image/png,image/gif);$true_type = $filetype;if(!in_array($true_type, $allow_type)echo 不支持該類型的文件;3.9文件上傳類為什么要將上面的代碼封裝類中呢?因為現(xiàn)在主流的編程都是OOP(面象編程),那象編程和面向過程編程的區(qū)別是:面向過程:文件里面的基本是函數(shù)面象:文件里面基本的是類如何封裝到類中?類包括:成員屬性、成員方法成員屬性:和變量的聯(lián)系、 區(qū)別:聯(lián)系是:都是用來數(shù)據(jù)的區(qū)別是:屬性有家,變量沒有家exit;/實例化finfo對象,用

13、來獲得一個文件的真實的類型$finfo = new finfo(FILEINFO_MIME_TYPE);$type = $finfo - file($filetmp_name);if(!in_array($type, $allow_type)echo 不支持該類型的文件;exit;if(move_uploaded_file($filetmp_name, $destination)echo 上傳成功;elseecho 上傳失敗;既然他們都是用來保存數(shù)據(jù)的,那么如果一個數(shù)據(jù)從開始到結(jié)束,都不會變化的話,就沒有必要將其保存,反過來,屬性只保存哪些將來可能變化的數(shù)據(jù)回到文件上傳類中:通過分析,發(fā)現(xiàn)上傳的文件保存的路徑、限制的大小、文件名的前綴、允許的文件類型等這些數(shù)據(jù)將來可能變化,所以其保存到屬性中詳細代碼:演示一下:3.10墻作業(yè)思路:上傳成功之后,要將上傳的地址保存到數(shù)據(jù)庫當(dāng)點擊查看頭像墻的時候,再從數(shù)據(jù)庫查詢上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論