基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
发布时间:2020-12-14 14:03:59 所属栏目:大数据 来源:网络整理
导读:废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言。 前端HTML+JQuery 备注Jquery需要1.x版本,不能用2.x版本 1.引入必要文件及上传input 2.uploadify使用操作 3、ThinkPHP控制器上传操作:备注需要引入Upload
废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言。 前端HTML+JQuery 备注Jquery需要1.x版本,不能用2.x版本 1.引入必要文件及上传input2.uploadify使用操作
$(function(){
//ThinkPHP上传地址
var upload = "{:U(MODULE_NAME.'/Student/upload')}";
//ThinkPHP sessionID的提交变量
//'VAR_SESSION_ID'=>'session_id',在ThinkPHP/Conf/convention.php中进行配置,默认关闭的需要开启
var sid = '{:session_id()}';
//导入数据地址
var daoruUrl = "{:U(MODULE_NAME.'/Student/daoruHandle')}"
//Amaze ui 模态框
var modal = $('#my-modal-loading');
//uploadify使用方法
$('#student').uploadify({
'swf' : '__PUBLIC__/uploadify/uploadify.swf','uploader' : upload,'buttonText' : '选择文件...','width':120,'height':30,'formData':{'session_id':sid},'fileTypeExts':'*.xls',//开始上传弹出模态框
'onUploadStart' : function(file) {
$('#alert-content').html('正在上传文件');
modal.modal();
},//上传成功关闭模态框,并用后台函数导入数据
'onUploadSuccess':function(file,data,response){
$('#alert-content').html('正在导入数据');
data = eval("("+data+")");
$.ajax({
type: 'POST',url: daoruUrl,data: {'file':data.file},success: function(retdata){
modal.modal('close');
if(retdata==1){
alert('导入成功');
}else{
alert('导入失败');
}
},dataType: 'json'
});
}
});
});
3、ThinkPHP控制器上传操作:备注需要引入Upload.class.php空间 3145728,'rootPath' => './Uploads/','savePath' => '','saveName' => array('uniqid',''),'exts' => array('xls'),'autoSub' => true,'subName' => array('date','Ymd'),);
$upload = new Upload($config);
// 上传文件
$info = $upload->upload();
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功 获取上传文件信息
$file = $info['Filedata']['savepath'].$info['Filedata']['savename'];
}
//p($info);
$data = array(
'file'=>'./Uploads/'.$file,);
echo json_encode($data);
}
4.导入数据进去mysql$row['xuehao'],'xingming'=>$row['xingming'],'xingbie'=>($row['xingbie']=='男')?1:0,'mima'=>md5($row['mima']),);
M('student')->add($data);
}
echo 1;
}
5.PHPExcel读取Excel文件返回数据函数canRead($file)){
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($file)) return array('error'=>1);//未知版本的Excel
}
//读取Excel文件
$PHPExcel = $PHPReader->load($file);
//获得Excel中表的数量
$sheetCount = $PHPExcel->getSheetCount();
//获得第一张工作表
$sheet=$PHPExcel->getSheet(0);
//获得表中最大数据列名
$column = $sheet->getHighestColumn();
//获得表中最大数据行名
$row = $sheet->getHighestRow();
//循环获得表中数据
for($i=1;$i<=$row;$i++){
$data[] = array(
//通过工作表对象的getCell方法获得单元格 getValue方法获得该单元格数值
'xuehao'=>$sheet->getCell('A'.$i)->getValue(),'xingming'=>$sheet->getCell('B'.$i)->getValue(),'xingbie'=>$sheet->getCell('C'.$i)->getValue(),'mima'=>$sheet->getCell('D'.$i)->getValue(),);
}
//释放工作表对象
unset($sheet);
//释放读取Excel文件对象
unset($PHPReader);
//释放Excel文件对象
unset($PHPExcel);
//返回数据
return array('error'=>0,'data'=>$data);
}
通过以上代码实现了ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据,希望对大家有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |