老师看一下这是什么情况?
<?php $arr = []; $mimes = ["image/jpeg","image/png","image/gif"]; $exts = ["jpeg","png","jpg","gif"]; $dir = "uploads"; foreach ($_FILES as $key => $val){ //接受数据 $name = $_FILES[$key]['name']; $type = $_FILES[$key]['type']; $tmp_name = $_FILES[$key]['tmp_name']; $error = $_FILES[$key]['error']; $size = $_FILES[$key]['size']; //错误检查 if ($error>0){ switch ($error){ case 1: $arr[$key]= "$name.上传文件超出了upload_max_filesize"; continue 2; case 2: $arr[$key]= "$name.上传文件超出了表单的MAX_FILE_SIZE"; continue 2; case 3: $arr[$key]= "$name.文件只有部分被上传"; continue 2; case 4: $arr[$key]= "没有文件被上传"; continue 2; case 6: $arr[$key]= "$name.找不到临时目录"; continue 2; case 7: $arr[$key]= "$name.写入磁盘失败"; continue 2; case 8: $arr[$key]= "$name.上传的文件被PHP扩展程序中断"; continue 2; default: $arr[$key]= "$name.未知错误"; continue 2; } } //检测MIME类型 if (!in_array($type,$mimes)){ $arr[$key] = "文件的类型{$type}不允许"; continue; } //检测扩展名是否允许 $ext = pathinfo($name,PATHINFO_EXTENSION); if (!in_array($ext,$exts)){ $arr[$key] = "文件扩展名{$ext}不支持上传"; continue; } //生成随机文件名 $fileName = md5(uniqid(microtime(),true)).".".$ext; //检测文件上传方式 if (!is_uploaded_file($tmp_name)){ $arr[$key] = "文件非法上传"; continue; } //移动文件 if (!is_dir($dir)){ mkdir($dir,0777,true); } if (!move_uploaded_file($tmp_name,$dir.DIRECTORY_SEPARATOR.$fileName)){ echo $name."文件上传失败"; continue; } } if (count($arr)>0){ var_dump($arr); }else{ echo "文件全部上传成功"; }
0
收起
正在回答
2回答
您好,判断$_FILES是否为空,如果上传文件大于upload_max_filesize的大小,那么$_FILES取得的是空数组。祝学习愉快!
PHP常用技术与ThinkPHP5框架开发
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星