封装的函数
<?php /* *@获取数组信息 *@三维数组转化为二位数组 */ function getFiles() { $i=0; foreach ($_FILES as $file) { if(is_string($file['name'])){ $files[$i]=$file; $i++; }elseif(is_array($file['name'])){ foreach ($file['name'] as $key => $value) { $files[$i]['name']=$file['name'][$key]; $files[$i]['type']=$file['type'][$key]; $files[$i]['tmp_name']=$file['tmp_name'][$key]; $files[$i]['error']=$file['error'][$key]; $files[$i]['size']=$file['size'][$key]; $i++; } } } return $files; } /* *多文件上传 */ function uploadFile($fileInfo,$flag=true,$path='./uploads',$maxSize=1048576,$allowExt=array('jpeg','jpg','png','gif','wbmp')) { //判断错误号 if($fileInfo['error']===UPLOAD_ERR_OK){ //检测上传的大小 if($fileInfo['size']>$maxSize){ $res['msg']=$fileInfo['name'].'上传文件过大'; } //检测上传文件的类型 // $allowExt=array('jpeg','jpg','png','gif','wbmp'); $ext=getExt($fileInfo['name']); if(!in_array($ext,$allowExt)){ $res['msg']=$fileInfo['name'].'非法文件类型'; } //检测是否是真实的图片类型 // $flag=true; if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ $res['msg']=$fileInfo['name'].'不是真正的图片类型'; } } //检测文件是否是通过HTTP POST方式上传的 if(!is_uploaded_file($fileInfo['tmp_name'])){ $res['msg']=$fileInfo['name'].'文件不是通过HTTP POST方式上传的合法文件'; } //上传文件 if($res) return $res; // $path='./uploads'; if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); } $uriName=getUniName(); $destination=$path.'/'.$uriName.'.'.$ext; if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){ $res['msg']=$fileInfo['name'].'文件移动失败'; } //文件上传成功 $res['msg']=$fileInfo['name'].'文件上传成功'; $res['dest']=$destination; return $res; }else{ switch ($fileInfo['error']) { case 1: $res['msg']= '上传文件超过了PHP配置文件中upload_max_filesize选项的值'; break; case 2: $res['msg']= '超过了表单MAX_FTLE_SIZE限制的大小'; break; case 3: $res['msg']='文件部分被上传'; break; case 4: $res['msg']= '没有选择上传文件'; break; case 6: $res['msg']= '没有找到临时目录'; break; case 7: case 8: $res['msg']= '系统错误'; break; } return $res; } } /* *得到扩展名 */ function getExt($filename){ return strtolower(pathinfo($filename,PATHINFO_EXTENSION)); } /* *得到唯一文件名 */ function getUniName(){ return md5(uniqid(microtime(true),true)); } // 过滤空值,新数组输出 // $uploadFiles = array_values(array_filter($uploadFiles));
<?php /* *@获取数组信息 *@三维数组转化为二位数组 */ function getFiles() { $i=0; foreach ($_FILES as $file) { if(is_string($file['name'])){ $files[$i]=$file; $i++; }elseif(is_array($file['name'])){ foreach ($file['name'] as $key => $value) { $files[$i]['name']=$file['name'][$key]; $files[$i]['type']=$file['type'][$key]; $files[$i]['tmp_name']=$file['tmp_name'][$key]; $files[$i]['error']=$file['error'][$key]; $files[$i]['size']=$file['size'][$key]; $i++; } } } return $files; } /* *多文件上传 */ function uploadFile($fileInfo,$flag=true,$path='./uploads',$maxSize=1048576,$allowExt=array('jpeg','jpg','png','gif','wbmp')) { //判断错误号 if($fileInfo['error']===UPLOAD_ERR_OK){ //检测上传的大小 if($fileInfo['size']>$maxSize){ $res['msg']=$fileInfo['name'].'上传文件过大'; } //检测上传文件的类型 // $allowExt=array('jpeg','jpg','png','gif','wbmp'); $ext=getExt($fileInfo['name']); if(!in_array($ext,$allowExt)){ $res['msg']=$fileInfo['name'].'非法文件类型'; } //检测是否是真实的图片类型 // $flag=true; if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ $res['msg']=$fileInfo['name'].'不是真正的图片类型'; } } //检测文件是否是通过HTTP POST方式上传的 if(!is_uploaded_file($fileInfo['tmp_name'])){ $res['msg']=$fileInfo['name'].'文件不是通过HTTP POST方式上传的合法文件'; } //上传文件 if($res) return $res; // $path='./uploads'; if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); } $uriName=getUniName(); $destination=$path.'/'.$uriName.'.'.$ext; if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){ $res['msg']=$fileInfo['name'].'文件移动失败'; } //文件上传成功 $res['msg']=$fileInfo['name'].'文件上传成功'; $res['dest']=$destination; return $res; }else{ switch ($fileInfo['error']) { case 1: $res['msg']= '上传文件超过了PHP配置文件中upload_max_filesize选项的值'; break; case 2: $res['msg']= '超过了表单MAX_FTLE_SIZE限制的大小'; break; case 3: $res['msg']='文件部分被上传'; break; case 4: $res['msg']= '没有选择上传文件'; break; case 6: $res['msg']= '没有找到临时目录'; break; case 7: case 8: $res['msg']= '系统错误'; break; } return $res; } } /* *得到扩展名 */ function getExt($filename){ return strtolower(pathinfo($filename,PATHINFO_EXTENSION)); } /* *得到唯一文件名 */ function getUniName(){ return md5(uniqid(microtime(true),true)); }
// 过滤空值,新数组输出 // $uploadFiles = array_values(array_filter($uploadFiles));view
<!-- multiple选择多个文件上传 --> <input type="file" name="myFile[]" multiple="multiple"/><br> <input type="submit" value="上传文件" /><br>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件上传</title> </head> <body> <form action="morefile.php" method="post" enctype="multipart/form-data"> <span>请上传您的文件:</span> <input type="file" name="myFile[]"/><br> <span>请上传您的文件:</span> <input type="file" name="myFile[]"/><br> <span>请上传您的文件:</span> <input type="file" name="myFile[]"/><br> <span>请上传您的文件:</span> <input type="submit" value="上传文件" /><br> </form> </body> </html>