一、表單簡介
GET所有表單輸入的數(shù)據(jù)被加載到請求的URL地址后面昂利;
如:test.php?username=free&password=123&content=dfdsfsfd;
GET方式提交數(shù)據(jù)只能傳遞文本届腐,能夠提交的數(shù)據(jù)量大小有限,安全性差蜂奸。
POST提交數(shù)據(jù)的方式把表單的數(shù)據(jù)打包放入http請求中犁苏;
POST能夠提交更多的數(shù)據(jù);
表單提交的數(shù)據(jù)會自動封裝為數(shù)組扩所;
用$_GET, $_POST,或 $_REQUEST獲得表單提交的數(shù)據(jù);
多值表單控件(如復(fù)選框和多選框)围详,大大提高了基于web的數(shù)據(jù)收集能力;因為這些組件是多值得碌奉,所以表單處理函數(shù)必須能夠識別一個表單變量中可能有多個值短曾;為了讓php識別一個表單變量的多個值(即考慮為數(shù)組)寒砖,需要對表單名(元素的name屬性值)增加一對中括號,如:
<input type php ="checkbox"name="love[]"/>
二嫉拐、文件上傳的相關(guān)配置
1哩都、表單設(shè)置
要進(jìn)行文件的上傳,需要對form表單進(jìn)行特殊設(shè)置婉徘;
- 設(shè)定表單數(shù)據(jù)的提交方式為POST方式漠嵌;
- 給form表單添加enctype屬性值為:multipart/form-data;
- 為了避免用戶避免用戶等待許久之后才發(fā)現(xiàn)上傳文件太大,可以在表單中添加MAX_FILE_SIZE隱藏域盖呼,通過設(shè)置器value值可以限制上傳文件的大腥迓埂;
2几晤、PHP設(shè)置
file_uploads是否允許通過HTTP上傳文件爷抓,默認(rèn)為NO;
upload_max_filesize 允許上傳文件大小的最大值捧搞,默認(rèn)為2M腹尖,此指令必須小于pose_max_size;
upload_tmp_dir指定上傳文件的臨時存放路徑憾朴,這個目錄對于擁有此服務(wù)器進(jìn)程的用戶必須是可寫的狸捕;如果未指定則使用系統(tǒng)默認(rèn)值;
post_max_size控制POST方式提交數(shù)據(jù)php所能夠接收的最大數(shù)據(jù)量众雷;
memory_limit指定單個腳本程序可以使用的最大內(nèi)存容量灸拍;
max_execution_time 此指令確定PHP腳本可以執(zhí)行的最長時間,以秒為單位砾省,默認(rèn)為30秒鸡岗;
三、$_FILES數(shù)組
$_FILES超全局變量作用是存儲各種與上傳文件有關(guān)的信息;
$_FILES是一個二維數(shù)組编兄,數(shù)組中共有5項:
- $_FILES["userfile"]["name"] 上傳文件的名稱
- $_FILES["userfile"]["type"] 上傳文件的類型
- $_FILES["userfile"]["size"] 上傳文件的大小纤房,以字節(jié)為單位
- $_FILES["userfile"]["tmp_name"] 文件上傳后在服務(wù)器端儲存臨時文件名
- $_FILES["userfile"]["error"] 文件上傳相關(guān)的錯誤代碼
注意:userfile只是一個占位符,代表文件上傳表單元素的名字翻诉;因此這個值將根據(jù)你所給定的名稱有所不同炮姨;
四、上傳錯誤信息
$_FILES["userfile"]["error"] 提供了在文件上傳過程中出現(xiàn)的錯誤:
1碰煌、UPLOAD_ERR_OK(value = 0) 如果文件上傳成功返回0舒岸;
2、UPLOAD_ERR_INI_SIZE(value = 1) 如果試圖上傳的文件大小超過出了upload_max_filesize指令指定的值芦圾,則返回1蛾派;
3、UPLOAD_ERR_FORM_SIZE(value = 2) 如果試圖上傳的文件大小超過出了MAX_FILE_SIZE指令(可能嵌入在HTML表單中)指定的值,則返回2洪乍;
4眯杏、UPLOAD_ERR_PARTIAL(value = 3) 如果文件沒有完全上傳,則返回3壳澳;如網(wǎng)絡(luò)出現(xiàn)錯誤岂贩,導(dǎo)致上傳過程中斷;
5巷波、UPLOAD
_ERR_NO_FILE(value = 4) 如果用戶沒有指定上傳的文件就提交表單萎津,則返回4;
五抹镊、文件上傳函數(shù)
1锉屈、is_uploaded_file() 函數(shù)確定參數(shù)filename指定的文件是否使用HTTP POST上傳;
2垮耳、move_uploaded_file() 函數(shù)是將上傳文件從臨時目錄移動到目標(biāo)目錄颈渊;雖然copy()也可以實現(xiàn)同樣功能,但move_uploaded_file() 還提供了一種額外的功能终佛,它將檢查由filename輸入?yún)?shù)指定的文件確實是通過http post上傳機(jī)制上傳的儡炼。如果所指定的文件并非上傳文件,則移動失敗查蓉,返回false;
以上內(nèi)容純屬個人理解榜贴,由于本人水平有限豌研,若有錯漏之處,敬請指出斧正唬党,小弟不勝感激鹃共,謝謝!