基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言。
前端HTML+JQuery 备注Jquery需要1.x版本,不能用2.x版本
1.引入必要文件及上传input
2.uploadify使用操作
$(function(){
//Think
PHP上传地址
var upload = "{:U(MODULE_NAME.'/Student/upload')}";
//Think
PHP sessionID的提交变量
//'VAR_SESSION_ID'=>'session_id',在Think
PHP/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);
}
$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 无刷新导入数据,希望对大家有所帮助。
原文链接:https://www.f2er.com/thinkphp/21211.html