文件上传验证:
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);}//创建上传目录
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/";//规定存放上传文件的目录
$exts=[".docx",".pptx",".xlsx",".doc",".ppt",".xls"];//规定上传文件的类型
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";
网友评论