天天看点

PHP 批量上传 源代码

#####################################################################################

<?php

header("content-type:text/html;charset=utf-8");

date_default_timezone_set("Asia/ShangHai");

function mk_dir($dir,$mode=0755){

 if(is_dir($dir)||@mkdir($dir,$mode))return true;

 if(!mk_dir(dirname($dir),$mode))return false;

 return @mkdir($dir,$mode);

}

define('UPLOAD_PHOTO_SIZE',200000);

$file_type=array('image/gif','image/jpeg','image/pjpeg','image/png','image/jpg','image/bmp');

$opt=$_REQUEST['opt'];

if($opt=="upload")

 {

 $AllFile=$_FILES['allfiles'];               //取得上传文件的相关信息,从上传控件里

   $FilePath=$_REQUEST['FilePath'];      //取得上传时自己设定的跟路径

 $FileCount=$_REQUEST['CountFile'];   //取得上传时自己设定的文件个数

 $Succ=0;         //输出成功个数

   $Fail=0;         //输出失败个数

   $FailReason="";        //输出失败原因

   //检测目录是否存在

   $datepath=date('Y').'/'.date('md').'/';

    $FilePath=$FilePath.'/'.$datepath;

 if(!mk_dir($FilePath)){

  //目录写权限不够;

  echo '创建上传目录失败,请联系管理员';exit;

 }

   for($i=0;$i<$FileCount;$i++)//循环文件个数

    {

  $tmpName[$i]=$AllFile['tmp_name'][$i];  //上传文件存放的临时路径

     $Name[$i]=$AllFile['name'][$i];    //上传文件的名字likai.jpg

     $Type[$i]=$AllFile['type'][$i];    //上传文件的类型

  $FileSize[$i]=$AllFile['size'][$i];   //上传文件的大小

  $error[$i]=$AllFile['error'][$i];   //上传文件的错误信息

  $pathinfo=pathinfo($Name[$i]);              //取得图片名的后缀例如.jpg

             //对上传的文件重命名

     $newName[$i]=date("YmdHis").rand(100000,999999).$i.".".$pathinfo['extension'];

     if($FileSize[$i]>UPLOAD_PHOTO_SIZE){

   $Fail++;

      $FailReason.=$Fail."、文件".$Name[$i]."上传的失败原因:文件大小不能超过200k,请重新上传<br>";

      continue;

  }elseif(!in_array($Type[$i],$file_type)){

   $Fail++;

      $FailReason.=$Fail."、文件".$Name[$i]."上传的失败原因:文件类型不匹配,只允许上传jpg,gif,png,bmp<br>";

      continue;

  }elseif($error[$i]!=0){

   switch($error[$i]){

    case 1:

     $error='上传文件的大小超出了约定值';

     break;

    case 2:

     $error='上传文件大小超出了HTML表单MAX_FILE_SIZE元素所指定的最大值';

     break;

    case 3:

     $error='表示只有部分文件被上传';

     break;

    case 4:

     $error='表示没有任何文件要上传';

     break;

    case 6:

     $error='临时文件夹没有权限';

     break;

    default:break;

   }

   $Fail++;

      $FailReason.=$Fail."、文件".$Name[$i]."上传的失败原因:".$error."<br>";

      continue;

  }elseif(move_uploaded_file($tmpName[$i],$FilePath.$newName[$i]))

     {

      $Succ++;

     }

  else

     {

      $Fail++;

      $FailReason.=$Fail."、文件".$Name[$i]."上传的失败原因:未知错误<br>";

     }

    }

 ?>