#####################################################################################
<?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>";
}
}
?>