不分格式多文件上传

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>&nbsp;</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>";
}
?>

 

各位分分啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值