資源描述:
《PHP文件上傳詳解.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、PHP文件上傳詳解上傳文件分為兩個(gè)部分,HTML顯示部分和PHP處理部分,HTML部分主要是讓用戶來選擇所要上傳的文件,然后通過PHP中的$_FILES,我們可以把文件上傳到服務(wù)器的指定目錄。先來看一下HTML部分。?上傳:說明:f
2、orm標(biāo)答的action="upload.php"是指點(diǎn)擊這個(gè)form中的submit的時(shí)候,這個(gè)上傳命令會被發(fā)送到這個(gè)叫upload.php的頁面去處理。method="post"是指以post方式去送,enctype="multipart/form-data"屬性規(guī)定了在提交這個(gè)表單時(shí)要使用哪種內(nèi)容類型,在表單需要二進(jìn)制數(shù)據(jù)時(shí),比如文件內(nèi)容,請使用"multipart/form-data",如果要上傳文件,這個(gè)屬性是必要的。input中的type="file"時(shí),規(guī)定了應(yīng)該把輸入作為文件來處理,并且在input后面會有一個(gè)
3、瀏覽的按鈕。我們再來看一個(gè)PHP處理頁面upload.php?0){ echo"錯(cuò)誤狀態(tài):".$_FILES['myfile']['error']; }else{ move_uploaded_file($_FILES['myfile']['tmp_name'],"uploads/".$FILES['myfile']['name']); echo""; }}else{ echo"";}?>說明:在解釋這篇代碼前,我們有必要了解以下知識。$_FILES['myfile']['name']是指被上傳文件的名稱$_FILES['myfile']['type']是指被上傳文件的類型$_FILES['myfile']['size']是指被上傳文件的大小,單位為字節(jié)(B)$_FILES['myfile']['tmp_name']是指被上傳文件存在服務(wù)器中的臨時(shí)副本文件名稱,文件被
5、移動到指定目錄后臨文件將被自動消毀。$_FILES['myfile']["error"]是指由文件上傳中有可能出現(xiàn)的錯(cuò)誤的狀態(tài)碼,關(guān)于各狀態(tài)含義后在會說明。了解了這些,我們再來看一下upload.php的代碼。首先,$_FILES['myfile']['name']中的myfile是指在上面HTML頁面中上傳文件標(biāo)簽的name值,根據(jù)這個(gè)我們才能知道我們正在處理的文件是哪一個(gè)input提交過來的,然后再來判斷一下$_FILES['myfile']['name']不是否為空,根據(jù)這個(gè)我們可以知道用戶有沒有上傳文件,從而執(zhí)行不同的
6、操作。如果上傳了文件并且狀態(tài)是0就說明上傳成功,我們就可以用move_uploaded_file方法把上傳的文件存放到指定目錄,上面這個(gè)例子是指把上傳的文件移動到同目錄下的uploads文件夾下,這個(gè)路徑是相對于這個(gè)PHP文件(既upload.php)的相對目錄。比如,我們想把上傳的文件移動到upload.php上一層叫user的文件夾中的話,我們就可以這樣寫:move_uploaded_file($_FILES['myfile']['tmp_name'],"../user/".$FILES['myfile']['name']
7、),這種方法使用起來很方便、靈活,這樣一個(gè)文件就被上傳到服務(wù)器中了,可以打開服務(wù)器中的目錄查看該文件。允許用戶上傳文件是一個(gè)有巨大的安全風(fēng)險(xiǎn)的行為,因此,通常情況下,我們會對用戶上傳的文件做一些限制,比如常見的限制文件類型和文件大小,來看一下。?0){ echo"錯(cuò)誤狀態(tài):".$_FILES['myfile']['error']; }else{ if($_FILES['my
8、file']['type']=='image/jpeg'or$_FILES['myfile']['type']=='image/pjpeg'or$_FILES['myfile']['type']=='image/gif'&&$_FILES['myfile']['size']<