最新赞助活动温馨提示:自愿赞助服务器费用,学生和没有工作的整站资源免费下载!
头像

用ThinkPHP框架,uploadify,upload,PHPExcel怎么样实现 无刷新导入数据

来源:http://www.erdangjiade.com/topic/647.html 你好,世界。 2017-09-25 22:42浏览(54)

前端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如何实现 无刷新导入数据 的详细内容,更多请关注二当家的素材网其它相关文章!

评论0
头像

友情提示:垃圾评论一律封号 加我微信:826096331拉你进VIP群学习群

1 2