#副標=解決實作PHP網頁常見的問題 #大標=PHP檔案上傳與問題排除 #作者=文/圖 葉建榮 ===<反灰>============= 檔案上載
選擇檔案;
================ ===<反灰>============= 檔案上傳處理"; echo "檔案名稱:".$_FILES["userfile"]["name"]."
"; echo "檔案類型:".$_FILES["userfile"]["type"]."
"; echo "檔案大小:".$_FILES["userfile"]["size"]."
"; }else{ echo "上傳失敗!
"; echo "檔案名稱:".$_FILES["userfile"]["name"]."
"; echo "檔案類型:".$_FILES["userfile"]["type"]."
"; echo "檔案大小:".$_FILES["userfile"]["size"]."
"; echo "失敗原因:". $_FILES['userfile']['error']."
"; } ?> ================ ===<反灰>============= $file2=mb_convert_encoding($_FILES["userfile"]["name"],"big5","utf8"); ================ ==程式1 =========== 進階檔案上傳處理"; break; case 2: echo "失敗原因:大小超過表單設定 MAX_FILE_SIZE"."
"; break; case 3: echo "失敗原因:上傳不完整"."
"; break; case 4: echo "失敗原因:沒有檔案上傳"."
"; break; case 6: echo "失敗原因:暫存資料夾不存在"."
"; break; case 7: echo "失敗原因:上傳檔案無法寫入"."
"; break; case 8: echo "失敗原因:上傳停止"."
"; break; } } $uploaddir="./upload/"; $tmpfile=$_FILES["userfile"]["tmp_name"]; $file2=mb_convert_encoding($_FILES["userfile"]["name"],"big5","utf8"); $blacklist = array(".php", ".phtml", ".php3", ".php4", ".php5", ".exe", ".js",".html", ".htm", ".inc"); $allowed_filetypes = array('.jpg','.gif','.bmp','.png'); if (isset($_FILES['userfile'])) { if ($_FILES['userfile']['error'] != 0) { fileerror($_FILES['userfile']['error']); } else { foreach ($blacklist as $item) { if (preg_match("/$item$/i", $_FILES['userfile']['name'])) { echo "不合法檔案類型!"; unset($_FILES['userfile']['tmp_name']); exit; } } $ext = substr($_FILES['userfile']['name'], strpos($_FILES['userfile']['name'],'.'), strlen($_FILES['userfile']['name'])-1); if(!in_array($ext,$allowed_filetypes)){ die('上傳的檔案沒有列在允許上傳清單內'); } if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { if (move_uploaded_file($tmpfile,$uploaddir.$file2)) { echo "上傳成功!"; } else { echo "上傳失敗."; fileerror($_FILES['userfile']['error']); unset($_FILES['userfile']['tmp_name']); } } else { fileerror($_FILES['userfile']['error']); } } } else {echo "請挑選一個檔案上傳"; } ?> ================