加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据

发布时间:2020-12-13 02:51:13 所属栏目:PHP教程 来源:网络整理
导读:《基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据》要点: 本文介绍了基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据,希望对您有用。如果有疑问,可以联系我们。 PHP学习 废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的

《基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据》要点:
本文介绍了基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据,希望对您有用。如果有疑问,可以联系我们。

PHP学习废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言.

前端HTML+JQuery? 备注Jquery需要1.x版本,不能用2.x版本

1.引入必要文件及上传input


 <load file="__PUBLIC__/js/jquery-1.11.3.min.js" />
 <load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" />
 <load file="__PUBLIC__/uploadify/uploadify.css" />
<input type="file" class="" id="student" name="student">

2.uploadify使用操作


<script>
 $(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'
  });
  }
 });
 });
 </script>

3、ThinkPHP控制器上传操作:备注需要引入Upload.class.php空间


 function upload(){
  $config = array(
   'maxSize' => 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


//导入数据处理
 function daoruHandle(){
  $file = I('file');
  $excelData = excel_to_mysql($file);
  foreach($excelData['data'] as $row){
   $data = array(
    'xuehao'=>$row['xuehao'],'xingming'=>$row['xingming'],'xingbie'=>($row['xingbie']=='男')?1:0,'mima'=>md5($row['mima']),);
   M('student')->add($data);
  }
  echo 1;
 }

5.PHPExcel读取Excel文件返回数据函数


function excel_to_mysql($file){
  //导入PHPExcel第三方类库
  //vendor('PHPExcel.PHPExcel');
  import('Classes.PHPExcel',COMMON_PATH,'.php');
  //实例化PHPExcel类,用于接收Excel文件
  $PHPExcel = new PHPExcel();
  //读取Excel文件类实例化
  $PHPReader = new PHPExcel_reader_Excel5();
  //检测Excel版本是否可读
  if(!$PHPReader->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 无刷新导入数据,希望对大家有所帮助.

编程之家培训学院每天发布《基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读