總結:php檔案上傳的大概過程:通過表單中的檔案語提交上傳檔案,通過$_files陣列處理檔案,通過is_uploaded_file()函式驗證上傳檔案,通過move_uploaded_file()函式完成檔案上傳.
說明幾點:
1:form表單的 enctype 屬性:
form
表單的encrypt
屬性的預設值為
,它只能用於提交一般的表單請求。如果提交的表單中包含需要上傳的檔案,我們需要將
enctype
的屬性值改為
multipart/form-data
才能實現檔案上傳功能。
2:$_files全域性陣列為乙個多維陣列,用於獲取通過post方法上傳檔案時的相關資訊.如果是單檔案上傳,那麼陣列為二維陣列,如果是多檔案上傳,那麼陣列為三維陣列.它包含所有上傳檔案的資訊.
3:通過is_uploaded_file()函式對上傳檔案進行判斷,可以確保惡意的使用者無法欺騙指令碼去訪問本不能訪問的檔案,例如/etc/passwd.
例項:先編寫乙個簡單的upload.php檔案
執行結果如圖:
在編寫乙個後台執行的php檔案ckupload.php
<?php
//指定儲存的新目錄
$new_folder="doc";
if(isset($_post['sub'])) //判斷是否執行操作
$file=$_files['userfile']; //獲取表單提交的檔名稱
//如果是多檔案上傳,那麼陣列為三維陣列
//用for迴圈來獲取傳遞的資料.
for($i=0;$i//判斷檔案是否上傳到伺服器
if($file['error'][$i]>0)
}//對提交進行驗證
if(is_uploaded_file($file['tmp_name'][$i]))
else}}
}else
?>
執行結果:
結果:
PHP實現多檔案上傳
php實現多檔案上傳,與單檔案上傳絕大部分是相同的,不過還是有區分的地方,主要有三點 一 前端頁面 可以出現多個檔案瀏覽按鈕,也可以設定檔案瀏覽按鈕可以選擇多個檔案。需要注意的是檔案瀏覽按鈕的名字是陣列,因為要求上傳多個檔案。二 如果上傳的是多個檔案,通過 files獲得的陣列是三維陣列 如果上傳的...
PHP實現多檔案上傳
php檔案上傳流程 單擊提交按鈕,瀏覽器使用者將包含上傳檔案的表單資料提交給php處理程式 web伺服器和php預處理器首先判斷表單資料的大小是否超過php.ini配置檔案中的post max size選項設定的上限值。若超過,php處理程式將無法得到任何表單資料,此時不僅上傳檔案失敗,而且表單控制...
PHP實現多檔案上傳
charset utf 8 檔案上傳title head style color white background color 525d76 font size 22px text align center 檔案上傳h1 action upload.php method post enctype m...