html页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<script language="javascript" src="js/addMulti-FileUpload.js"></script>
<body>
<form action="add.php" enctype="MULTIPART/FORM-DATA" method="post">
<div style="width:500px; border:1px #FF0000 inset">
<label>
<center>文件上传</center>
</label><br>
<label style="color:#FF0000">注:一次最多上传9个文件,总大小为10M</label>
<div id="files" style="border:1px #999999 inset">
<input type="file" name="filee[]" value="" id="filee[]" size="40"/>
</div>
<input name="xiyaoname" id="1" value="再上传一条" type="button" οnclick="Add();"/>
<input type="submit" name="name" value="上传"/>
</div>
</form>
</body>
</html>
js页面
// JavaScript Document
var mine = 1;
var arr=0;
var shanchu=new Array();
function Add()
{
mine++;
if(mine<10)
{
var s=shanchu.length;
if(s>0)
{
var b;
//循环执行shift(),从数组中移除第一个值
b=shanchu.shift();
addKongJian(b);
arr--;
}
else
{
addKongJian(mine);
}
}
else
{
mine--;
alert("一次最多传递9个文件!");
}
}
function addKongJian(count)
{
//在做网站网页是getElementById会经常用一,
// 它可以获取一个指定id窗口的内容或改变容器的内容下面我们来看看关于getElementById实例
var files = document.getElementById("files");
var div_s=document.createElement("div");
div_s.id="div_"+count;
//createElement()创建一个控件实例
var inputTxt = document.createElement("input");
//对这个控件实例的属性赋值
inputTxt.type = "file";
inputTxt.id = "filee[]";
inputTxt.name = "filee[]";
inputTxt.size=40;
var btn = document.createElement("input");
btn.type = "button";
btn.value = "删除上传文件";
btn.id = "but"+count+"";
btn.οnclick=function()
{
//var n = inputTxt.getElementsByTagName("input");获得所有input控件,返回对象数组
var cs=this.id;
var b=cs.substr(3,1);
var div_dd=document.getElementById("div_"+b);
div_dd.parentNode.removeChild(div_dd);
shanchu[arr]=b;
arr++;
mine--;
};
//将创建的控件实例添加到找到的容器里
div_s.appendChild(inputTxt);
div_s.appendChild(btn);
files.appendChild(div_s);
}
php页面
里边加了个小小报告
<?php
//当上传文件遇到错误时返回,并将其删除
error_reporting(E_ALL);
//定义一个全局数组,用来存放上传文件的信息,根据上传文件结果来定义
$GLOBALS=array(0=>array(),1=>array(),2=>array(),3=>array(),4=>array(),6=>array(),7=>array(),8=>array());
global $address;
$address="file/";
//判断文件被上传后在服务端储存的临时文件名是否存在
if(isset($_FILES["filee"]["tmp_name"]))
{
//得到上传了几个文件
$sum=count($_FILES["filee"]["name"]);
UploadInformation($sum,$address);
UploadReport($sum);
}
else
{
echo "文件上传失败!<br>错误代号:".error_reporting(E_ALL);
}
//将文件的信息存入数组里
function UploadInformation($sum,$address)
{
for($i=0;$i<$sum;$i++)
{
//对单个的文件进行上传规范对比,并将其文件名放入数组对应的位置
switch($_FILES["filee"]["error"][$i])
{
case 0: $name=$_FILES["filee"]["name"][$i];
$name=$address.$name;
if(move_uploaded_file($_FILES["filee"]["tmp_name"][$i],$name))
{addArray(0,$i);}
else
{addArray(8,$i);}
break;
case 1: addArray(1,$i);
break;
case 2: addArray(2,$i);
break;
case 3: addArray(3,$i);
break;
case 4: addArray(4,$i);
break;
case 6: addArray(6,$i);
break;
case 7: addArray(7,$i);
break;
}
}
}
//上传文件报告
function UploadReport($sum)
{
echo "<center>";
echo "<table width='800' border='1' bordercolor='#666666'>";
echo "<tr height='50'><td colspan='3' style='color:#000099; font-size:24px; font-family:'楷体_GB2312'; font-weight:bold;' >";
echo "上传文件报告</td></tr>";
echo "<tr height='30'><td colspan='3'>您这次上传文件总数为:".$sum."</td></tr>";
echo "<tr height='30'><td width='350'>上传文件结果</td><td width='100'>数量</td><td width='350'>文件名称</td></tr>";
//$error[0]在数组中代表上传成功,这里if判断的是上传文件并不是全部通过
if(count($GLOBALS[0])!==$sum)
{
//根据上传结果来循环查看数组
for($i=0;$i<=8;$i++)
{
//因为没有代号为5的结果,所以5去掉
if($i!==5)
//当前上传结果的数组不为空,代表这次上传文件里有这种结果的文件,
//将文件名与有几条相同结果输出
if(count($GLOBALS[$i])!==0)
{
switch($i)
{
case 0: echo "<tr><td>文件上传成功</td><td>有".count($GLOBALS[0])."个文件</td>";
Export(0);
break;
case 1: echo "<tr><td>文件超过了 php.ini 中 upload_max_filesize 选项限制的值 4M</td><td>有".count($GLOBALS[1])."个文件</td>";
Export(1);
break;
case 2: echo "<tr><td>文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值</td><td>有".count($GLOBALS[2])."个文件</td>";
Export(2);
break;
case 3: echo "<tr><td>文件只有部分被上传</td><td>有".count($GLOBALS[3])."个文件</td>";
Export(3);
break;
case 4: echo "<tr><td>没有文件上传</td><td>有".count($GLOBALS[4])."个文件</td><td> </td><tr>";
break;
case 6: echo "<tr><td>找不到临时文件夹</td><td>有".count($GLOBALS[6])."个文件</td>";
Export(6);
break;
case 7: echo "<tr><td>文件写入失败</td><td>有".count($GLOBALS[7])."个文件</td>";
Export(7);
break;
case 8: echo "<tr><td>文件上传失败</td><td>有".count($GLOBALS[8])."个文件</td>";
Export(8);
break;
}
}
}
echo "</table></center>";
}
//全部上传成功
else
{
echo "<tr><td>文件上传成功</td><td>有".count($GLOBALS[0])."个文件</td>";
Export(0);
}
}
//将文件名放入数组对应的位置
function addArray($e,$d)
{
$s=count($GLOBALS[$e]);
$GLOBALS[$e][$s++]=$_FILES["filee"]["name"][$d];
}
//根据上传结果代号,将相同结果的文件名全部输出
function Export($b)
{
echo "<td>";
for($c=0;$c<count($GLOBALS[$b]);$c++)
{
echo $GLOBALS[$b][$c]."<br>";
}
echo "</td>";
}
?>
各位分分啊