php 导入excel

if($_FILES'files'){

uploadfile=_FILES'files';

name=uploadfile'name';//文件原名

type=uploadfile'type';

tmp_name=uploadfile'tmp_name';

size=uploadfile'size';

error=uploadfile'error';

// $uploadurl='../../../d/uploads/'; //上传路径

$path='./uploads/'; //上传路径

if (!is_dir($path)){//判断目录是否存在

mkdir($path);

}

$max_file_size=2000000; //最大上传限制 2M

if($name){

info = pathinfo(name);

ext = info'extension';

}

newname=path.time().$info'basename';//自定义名称

//允许上传类型

$allowType=array(

'xls','xlsx'

);

if(size\>max_file_size){$error=2;}

// echo $error;exit;

switch($error){

case 0:

if(!in_array(ext,allowType)){

$msg = '文件类型错误';

printerror($msg,'',1,0,1);

// echo "<script>alert('文件类型错误');self.location.href='ImportMember.php';</script>";

}else{

move_uploaded_file(tmp_name,newname);

}

break;

case 1:

$msg = '文件超过系统限定大小';

printerror($msg,'',1,0,1);

break;

case 2:

$msg = '最大文件不能超过2M';

printerror($msg,'',1,0,1);

break;

case 3:

$msg = '文件只有部分被上传';

printerror($msg,'',1,0,1);

break;

case 4:

$msg = '没有文件被上传';

printerror($msg,'',1,0,1);

break;

case 5:

$msg = '文件上传大小为0';

printerror($msg,'',1,0,1);

break;

default:

$msg = '非法上传';

printerror($msg,'',1,0,1);

break;

}

//查找文件

if(file_exists($newname)){

require_once '../../extend/PHPExcel/PHPExcel.php';

require_once '../../extend/PHPExcel/PHPExcel/IOFactory.php';

if($ext=='xls'){

require_once '../../extend/PHPExcel/PHPExcel/Reader/Excel5.php';// excel 2003

$objReader=PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format

}else{

require_once '../../extend/PHPExcel/PHPExcel/Reader/Excel2007.php';// excel 2007

$objReader=PHPExcel_IOFactory::createReader('Excel2007');//use excel2007 for 2007 format

}

// objPHPExcel=objReader->load(newname);//newname即Excel文件的路径

// objPHPExcel = objReader->load($newname);//加载文件(这个容易造成httpd崩溃)

objPHPExcel = PHPExcel_IOFactory::load(newname);//加载文件

sheet=objPHPExcel->getSheet(0);//获取第一个工作表

highestRow=sheet->getHighestRow();//取得总行数

highestColumn=sheet->getHighestColumn(); //取得总列数

// echo $highestRow;exit;

for(i=3;i<=highestRow;i++){

username=trim(objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue());

password=trim(objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue());

$rnd=make_password(20);

email=trim(objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue());

$registertime = date('Y-m-d H:i:s',time());

groupid = trim(objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue());

$salt=eReturnMemberSalt();

$userkey=eReturnMemberUserKey();

$checked = 1;

class_name=trim(objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue());

truename=trim(objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue());

gender=trim(objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue());

phone=trim(objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue());

address = trim(objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue());

username=strtolower(username);

email=strtolower(email);

if($groupid=='学生'){

$groupid = 7;

}elseif($groupid=='老师'){

$groupid = 8;

}

empty(gender) ? gender = '未知' : gender = gender;

empty(groupid)? groupid = 7 : groupid = groupid;

empty(password)?password=eDoMemberPw(123456,salt):password=eDoMemberPw(password,salt);

if(empty($username)){

$flag = 0;

msg='第'.(i-2).'条记录出错,用户名不能为空;请重新导入';

break;

}

if(empty($class_name)){

$flag = 0;

msg = '第'.(i-2).'条记录出错,班级不能为空;请重新导入';

break;

}

if(empty($truename)){

$flag = 0;

msg = '第'.(i-2).'条记录出错,真实姓名不能为空;请重新导入';

break;

}

num=empire->gettotal("select count(*) as total from ".eReturnMemberTable()." where ".egetmf('username')."='$username' limit 1");

if($num){

$flag = 0;

msg='第'.(i-2)."条记录出错,该用户已存在;请重新导入";

break;

}

if(!empty($email)){

if(!chemail($email))

{

$flag = 0;

msg='第'.(i-2)."条记录出错,邮箱格式不正确; 请重新导入";

break;

}

if($pr'regemailonly')

{

num=empire->gettotal("select count(*) as total from ".eReturnMemberTable()." where ".egetmf('email')."='$email' limit 1");

if($num)

{

$flag = 0;

msg='第'.(i-2)."条记录出错,邮箱已注册; 请重新导入";

break;

}

}

}

// else{

// $flag = 0;

// msg='第'.(i-1)."条记录出错,邮箱不能为空; 请重新导入";

// break;

// }

// echo $member_r0;exit;

sql=empire->query("insert into ".eReturnMemberTable()."(".eReturnInsertMemberF('username,password,rnd,email,registertime,groupid,userfen,userdate,money,zgroupid,havemsg,checked,salt,userkey').") values('username','password','rnd','email','registertime','groupid','public_r\[reggetfen\]','0','0','0','0','checked','salt','userkey');");

if($sql){//插入成功

userid=empire->lastid();

ins_id\[\] = userid;

addr=empire->fetch1("select * from {dbtbpre}enewsmemberadd where userid='userid'");

if(!$addr){

spacestyleid = groupid;

sql1=empire->query("insert into {dbtbpre}enewsmemberadd(userid,truename,spacestyleid,regip,lasttime,lastip,loginnum,regipport,lastipport,class_name".member_r0.") values('userid','truename','spacestyleid','regip','lasttime','regip','1','regipport','regipport','class_name'".member_r1.");");

if($sql1){

$flag = 1;

$msg = '导入成功';

$gotourl = 'ListMember.php';

insids = implode(',',ins_id);

// printerror($msg,'ListMember.php',1,0,1);

}else{

$flag = 0;

$msg = '导入失败';

$gotourl = 'ImportMember.php';

insids = implode(',',ins_id);

break;

}

}

}

}

@unlink($newname);

if($flag==1){

printerror(msg,gotourl,1,0,1);

}else{

if($insids){

sql2 = "delete from {dbtbpre}enewsmember where userid in ($insids)";

res1 = empire->query($sql2);

sql3 = "delete from {dbtbpre}enewsmemberadd where userid in ($insids)";

res2 = empire->query($sql3);

}

printerror(msg,gotourl,1,0,1);

}

}else{

echo "<script>alert('请选择要导入的文件')</script>";

}

}

相关推荐
Escalating_xu9 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
niucloud-admin11 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:订单列表
开发语言·php
一枕槐安48711 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
李纲明12 小时前
WordPress 白屏或提示「出现了严重错误」:先开 WP_DEBUG 抓致命错误,再二分插件与主题
运维·php·debug·wordpress·白屏·插件冲突·devdiy
taller_200013 小时前
【012】数据类型入门: Excel 数据到 Python 值的转换
python·excel·pie·py
其实防守也摸鱼14 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
niucloud-admin17 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:评价列表
开发语言·php
临沂码农王老七17 小时前
Composer一劳永逸的“绿色安装法”
php·composer
aixingpan18 小时前
aixingpan.cn API开发文档:api_docs_bichart_common2接口指南
前端·php
萝卜兔00820 小时前
PIKACHU_UnsafeFileUpload
javascript·php