




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、文件上傳、分頁類第 1 章1.1課前說明0課前說明0第 2.7第 章ZENDSTUDIO 安裝使用0ZENDSTUDIO 編輯器安裝ZENDSTUDIO 編輯器創(chuàng)建工程刪除工程導(dǎo)入工程設(shè)置字體、顏色、編碼文件重命名03344710文件上傳11章文件上傳的基本介紹、應(yīng)用場(chǎng)景文件上傳的原理說明文件上傳入門案例防止上傳文件過大防止文件被覆蓋分目錄存放上傳的文件控制上傳的文件類型將文件上傳代碼封裝成函數(shù)文件上傳類作業(yè)111114151819212427313.10第 4 章文件. 324.1第 5 章文件32
2、分頁類345.15.2分頁基本介紹具體實(shí)現(xiàn)3434第 1 章課前說明1.1課前說明該階段的課程比較綜合,在學(xué)習(xí)的過程中需要多總結(jié)如果遇到理論性比較強(qiáng)的地方,難的地方,需要先實(shí)現(xiàn)出來,不理解的地方記 錄到筆記本上,后面在消化(3)不要做的巨人,行動(dòng)的矮子,代碼要多些,達(dá)到孰能生巧第 2 章ZendStudio 安裝使用2.1zendstudio 編輯器安裝先:(1)然后,再輸入碼即可面試時(shí),面試官可能會(huì)問:使用什么 IDE 進(jìn)行開發(fā)?IDE,集成開發(fā)工具2.2zendstudio 編輯器2.3創(chuàng)建工程Zendstudio 是通過項(xiàng)目、工程的形式,進(jìn)行代碼的管理,所以項(xiàng)目、工程:需要先創(chuàng)建一個(gè)Fi
3、le-NewLocalProject2.4刪除工程刪除工程時(shí),一定要注意,如果選中下面的復(fù)選框,將會(huì)刪除所有的文件而且不能恢復(fù)。2.5導(dǎo)入工程File-Import-將來可能會(huì)遇到這樣的情況:有一個(gè)項(xiàng)目不是通過 zendstudio 創(chuàng)建的,那么如何導(dǎo)入到控制臺(tái)呢先找一個(gè)使用 zendstudio 創(chuàng)建的工程,將里面的.project 文件拷貝到當(dāng)前項(xiàng)目中然后打開該文件:2.6設(shè)置字體、顏色、編碼Window-preference-設(shè)置顏色:設(shè)置編碼:Window-preference2.7文件重命名點(diǎn)擊項(xiàng)目-右擊鼠標(biāo)-Refactor-Rename-回車OK第 3 章文件上傳3.1文件上傳的
4、基本介紹、應(yīng)用場(chǎng)景點(diǎn)擊上傳時(shí),會(huì)上傳到哪里去?會(huì)將、文件等上傳到服務(wù)器上面,并返回的地址,這樣,只需要給其他用戶提供該文件的地址即可3.2文件上傳的原理說明文件上傳,其實(shí)也是通過表單提交的,表單提交的數(shù)據(jù)分為如下兩種:(1)字節(jié)流數(shù)據(jù):輸入框、單選框、復(fù)選框、多行文本域等都是通過字節(jié)的數(shù)據(jù)傳輸?shù)椒?wù)器,服務(wù)器通過$_GET$_T 接收(2)二進(jìn)制文件流的形式;當(dāng)需要提交一些文件的時(shí)候,由于文件采用的二進(jìn)制的形式進(jìn)行編碼,所以需要先將二進(jìn)制文件轉(zhuǎn)碼,然后再提交到服務(wù)器提交的時(shí)候,需要通過 input type=”file” 文件域上傳服務(wù)器接收的時(shí)候,通過$_FILES 進(jìn)行接收注意:如何將表單
5、的數(shù)據(jù),以二進(jìn)制流的形式進(jìn)行傳輸,必須在表單 form增加一個(gè)屬性:enctype=”multipart/form-data”先創(chuàng)建表單文件:upload.html提交之后,在服務(wù)器端接收并打?。篗IME 類型詳解:多用途ernet 郵件擴(kuò)展,mime 類型的出現(xiàn),跟著電子郵件出現(xiàn)的早期,發(fā)送電子郵件的時(shí)候,里面可能會(huì)附帶一些附件,計(jì)算機(jī)系統(tǒng)根據(jù)附件的類型找到對(duì)應(yīng)的設(shè)備打開,例如:傳輸?shù)氖牵蜁?huì)找到器去打開,如果傳輸?shù)氖蔷W(wǎng)頁文件,那么會(huì)自動(dòng)使用瀏覽器去打開MIME 類型,包括 2 個(gè)部分:第一個(gè)部分是該文件所屬的一個(gè)大類,第二個(gè)部分是文件細(xì)節(jié)小類,例如:text/html,屬于文本文件,htm
6、l 這樣的文本文件image/jpg,屬于圖像大類,jpg 這種類型的圖像tmp_name 詳解:tmp- temptemporary,該單詞的意思是臨時(shí)的文件上傳的原理:當(dāng)點(diǎn)擊提交表單時(shí),會(huì)將 file 文件域里面的文件,先上傳到臨時(shí)的目錄(可以在的配置文件中設(shè)置),默認(rèn)的臨時(shí)目錄是 c:/windows/temp,如果需要持久的保存,需要通過的函數(shù) move_uploaded_file()移動(dòng)到指定的位置,如果不移動(dòng),當(dāng)執(zhí)行結(jié)束,臨時(shí)文件就會(huì)代碼演示一下:休眠 10 秒鐘:由于執(zhí)行的太快,為了看到效果,讓提交表單之后,就會(huì)在 c:/windows/temp 目錄下面看到這個(gè)臨時(shí)文件為了不讓
7、該臨時(shí)文件,需要在結(jié)束之前,將該臨時(shí)文件移動(dòng)到服務(wù)器使用的 move_uploaded_file()函數(shù)進(jìn)行移動(dòng)的3.3文件上傳入門案例為了方便管理這些上傳的文件,通常會(huì)將上傳的文件保存到 uploads 目錄下面3.4防止上傳文件過大思路:首先給定一個(gè)文件的最大限制,然后再拿上傳的文件的大小 和 最大的限制進(jìn)行比較,文件大小是字節(jié),字節(jié)之間的轉(zhuǎn)換:10241024 字節(jié) = 1KB1024KB = 1MB1024MB = 1GB修改一下表單的提交地址:確實(shí)了文件的上傳,但是還有一個(gè)小問題:雖然上傳時(shí),了,但是該文件還是在臨時(shí)的文件夾中走了一圈,如何實(shí)現(xiàn),如果文件過大的話,連臨時(shí)目錄都不讓其進(jìn)
8、去需要修改的配置文件了,將其最大的限制修改為 2MB,這樣,讓上傳的文件大小超過 2MB,就無法進(jìn)入到臨時(shí)目錄測(cè)試一把:錯(cuò)誤指的是提交的表單內(nèi)容,超過了表單提交的最大限制,所以為了演示效果,我們臨時(shí)將表單提交的最大限制修改為 80MB3.5防止文件被覆蓋如果多個(gè)用戶,同時(shí)上傳文件,如果文件的名字固定死的話,所有用戶上傳的文件名字都會(huì)一樣,將來就很麻煩了思傳成功之后,給文件命名時(shí),取一個(gè)唯一的、隨機(jī)數(shù)3.6分目錄存放上傳的文件為什么要分目錄?如果上傳的文件不加任何修改,直接保存到 uploads 目錄的話,uploads 目錄就會(huì)出現(xiàn)很多文件,不便于查找通常會(huì)按照日期的格式分目錄保存3.7控制上
9、傳的文件類型假設(shè)有這樣一個(gè)需求:上傳用戶的頭像只能上傳(jpg、png、gif),所以這個(gè)時(shí)候就應(yīng)該上傳的時(shí)候做一個(gè)判斷思路:首先,定義一個(gè)數(shù)組保存支持的上傳的文件的類型,然后再拿上傳的文件的實(shí)際類型和支持的類型進(jìn)行比較但是,上面的代碼存在一個(gè)小問題:如果手動(dòng)的把一個(gè) excel 文件的后綴修改為.jpg 了,如下所示:上傳的時(shí)候,就會(huì)把蒙混過去,如果用戶上傳的是(js 等),就會(huì)很所以還要做一個(gè)更加嚴(yán)格的過濾需要借助提供的類(內(nèi)置的一個(gè)類)finfo,在手冊(cè)的位置:3.8將文件上傳代碼封裝成函數(shù)為什么要封裝到函數(shù)中?提高上傳文件的代碼的重用性,保證這些代碼能夠在不同的場(chǎng)景中靈活的應(yīng)用封裝到函
10、數(shù)之前,先思考哪些部分將來可能會(huì)變化、修改,將這些可能變化的部分以參數(shù)形式傳遞進(jìn)去,這樣,的函數(shù)更加靈活例如,將來上傳分類的圖標(biāo)了,文件上傳域的 name 是cat_logo詳細(xì)代碼參考:2.upload_maxsize. $maxsize) echo 太大了,服務(wù)器撐不下; exit;/2. 防止文件重復(fù)/首先生成一個(gè)唯一的隨機(jī)數(shù)作為文件的名字/參數(shù)1:前綴/參數(shù)2:布爾值,如果true化,更具有唯一性$filename = uniqid(tn_,true);/確定文件的后綴/strrchr()用來獲得一個(gè)字符串中最后一次出現(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文件上傳類為什么要將上面的代碼封裝類中呢?因?yàn)楝F(xiàn)在主流的編程都是OOP(面象編程),那象編程和面向過程編程的區(qū)別是:面向過程:文件里面的基本是函數(shù)面象:文件里面基本的是類如何封裝到類中?類包括:成員屬性、成員方法成員屬性:和變量的聯(lián)系、 區(qū)別:聯(lián)系是:都是用來數(shù)據(jù)的區(qū)別是:屬性有家,變量沒有家exit;/實(shí)例化finfo對(duì)象,用
13、來獲得一個(gè)文件的真實(shí)的類型$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ù)的,那么如果一個(gè)數(shù)據(jù)從開始到結(jié)束,都不會(huì)變化的話,就沒有必要將其保存,反過來,屬性只保存哪些將來可能變化的數(shù)據(jù)回到文件上傳類中:通過分析,發(fā)現(xiàn)上傳的文件保存的路徑、限制的大小、文件名的前綴、允許的文件類型等這些數(shù)據(jù)將來可能變化,所以其保存到屬性中詳細(xì)代碼:演示一下:3.10墻作業(yè)思路:上傳成功之后,要將上傳的地址保存到數(shù)據(jù)庫當(dāng)點(diǎn)擊查看頭像墻的時(shí)候,再從數(shù)據(jù)庫查詢上
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 相關(guān)設(shè)施制造企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 增濕造粒機(jī)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 垂直雙擴(kuò)散金屬-氧化物場(chǎng)效應(yīng)晶體管(VDMOS)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 罐瓶機(jī)用龍頭企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 腈綸定型機(jī)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 智能專用設(shè)備維修企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 綜合監(jiān)控系統(tǒng)及關(guān)鍵設(shè)備企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 高精度晶閘管直流調(diào)速器競爭策略分析報(bào)告
- 智能化柜式或抽屜式斷路器產(chǎn)業(yè)分析報(bào)告
- 中國石油天然氣股份有限公司招聘筆試真題2024
- 《將軍胡同》閱讀試題及答案
- 2022年常德市漢壽縣社區(qū)工作者招聘考試試題
- 小學(xué)畢業(yè)班數(shù)學(xué)老師家長會(huì)完美版資料
- 福建土樓介紹
- 文藝復(fù)興時(shí)期服裝風(fēng)格
- 中華茶文化智慧樹知到答案章節(jié)測(cè)試2023年青島職業(yè)技術(shù)學(xué)院
- 《愛麗絲漫游奇境》閱讀指導(dǎo)
- 非物質(zhì)文化遺產(chǎn)代表性項(xiàng)目申報(bào)書
- VBOXTools軟件操作手冊(cè)
- GB/T 15706.2-2007機(jī)械安全基本概念與設(shè)計(jì)通則第2部分:技術(shù)原則
- 卵巢惡性腫瘤腹腔鏡手術(shù)課件
評(píng)論
0/150
提交評(píng)論