为什么上传了多个文件之后,print_r之后只有最后一个文件显示出来。
<?php
//print_r($_FILES);
/**
* 构件上传文件信息
* @return unknown|unknown[]
*/
require_once '../lib/string.func.php';
function buildInfo()
{
$i=0;
$files=array();
foreach ($_FILES as $v)
{
if(is_string($v['name']))//多文件
{
$files[$i]=$v;
$i++;
}else{
foreach ($v['name'] as $key=>$val)
{
$files[$i]['name']=$val;
$files[$i]['size']=$v['size'][$key];
$files[$i]['tmp_name']=$v['tmp_name'][$key];
$files[$i]['error']=$v['error'][$key];
$files[$i]['type']=$v['type'][$key];
$i++;
}
}
}
return $files;
}
function uploadfile($path="uploads",$allowExt=array("gif","png","jpeg","jpg","wbmp"),$maxsize=2097152,$imageFlag=true)
{
if(!file_exists($path))
{
mkdir($path,0777,true);
}
$files=buildInfo();
foreach ($files as $file)
{
$i=0;
$uploadFiles=array();
if($file['error']==UPLOAD_ERR_OK)
{
$ext=getEXT($file['name']);
if(!in_array($ext, $allowExt))
{
exit("非法文件类型");
}
if($imageFlag)
{
if(!getimagesize($file['tmp_name']))
{
exit("不是真正的图片类型");
}
}
if($file['size']>$maxsize)
{
exit("上传文件过大");
}
if(!is_uploaded_file($file['tmp_name']))
{
exit("不是通过POST方式上传的");
}
$filename=getUniName().".".$ext;
$destination=$path."/".$filename;
if(move_uploaded_file($file['tmp_name'], $destination))
{
$file['name']=$filename;
unset($file['error'],$file['tmp_name'],$file['size'],$file['type']);
$uploadFiles[$i]=$file;
$i++;
}
}
else
{
switch ($file['error'])
{
case 1://UPLOAD_ERR_INI_SIZE
$mes="超过配置文件上传文件大小";
break;
case 2://UPLOAD_ERR_FORM_SIZE
$mes="超过了表单设置上传文件大小";
break;
case 3://UPLOAD_ERR_PARTIAL
$mes="文件部分被上传";
break;
case 4:
$mes="没有文件被上传";
break;
case 6:
$mes="没有找到临时目录";
break;
case 7:
$mes="文件不可写";
break;
case 8:
$mes="由于php扩展程序中断了文件上传";
break;
}
}
}
return $uploadFiles;
}
$fileInfo=uploadfile();
print_r($fileInfo);