文件上傳驗證:
if(!isset($_POST["submit"])){exit("未通過post方式提交");}
function upload_file($input_name,$dir,$exts){
$arr=$_FILES[$input_name]["name"];
if(empty($input_name)){return "文件未上傳";}//判斷文件是否上傳
$ext=strrchr($_FILES["file"]["name"],".");//提取文件擴展名
if(!in_array($ext,$exts)){return "文件類型有誤";}//判斷文件類型
if($_FILES["file"]["error"]<>0){return "error".$_FILES["file"]["error"];}//判斷錯誤類型
if(!is_uploaded_file($_FILES["file"]["tmp_name"])){return "未通過 HTTP POST 上傳";}//判斷文件是否是通過 HTTP POST 上傳的
if(!is_dir($dir)){mkdir($dir,0777,true);}//創(chuàng)建上傳目錄
if(move_uploaded_file($_FILES["file"]["tmp_name"],$dir.date("YmdHis").rand(1000,9999).$ext))//將上傳的文件移動$dir
{return "上傳成功";}
else
{return "上傳失敗";}
}
$input_name="uploads";//上傳控件的name屬性
$dir="e:/file/upload_multiple/";//規(guī)定存放上傳文件的目錄
$exts=[".docx",".pptx",".xlsx",".doc",".ppt",".xls"];//規(guī)定上傳文件的類型
upload_file($input_name,$dir,$exts);
錯誤類型提示:
switch($_FILES["file"]["error"]){
case 1:
$err="上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。";
break;
case 2:
$err="上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。";
break;
case 3:
$err="文件只有部分被上傳。";
break;
case 4:
$err="沒有文件被上傳。";
break;
case 6:
$err="找不到臨時文件夾。";
break;
case 7:
$err="文件寫入失敗。";
break;
}
echo "error{$_FILES["file"]["error"]}: $info";