TP5导入数据库

html页面代码 theme:

<form method="post" action="{:url('Index/savestudentImport')}" class="form-signin" enctype="multipart/form-data" >  
    <div>
        <select name="themeid">
            {volist name="theme" id="v"}
                <option value="{$v.id}">{$v.title}</option>
            {/volist}
        </select>
    </div><br />
    <input name="excel" type="file" class="form-control">  
    <br /><br />
    <button class="btn btn-lg btn-primary btn-block">导入</button>  
</form>  

控制器接收代码:

public function savestudentImport(){  
        //import('phpexcel.PHPExcel', EXTEND_PATH);//方法二  
        vendor("PHPExcel.PHPExcel"); //方法一  
        $objPHPExcel = new \PHPExcel();  
          $themeid=input('post.themeid');//导入数据类型
        //获取表单上传文件  
        $file = request()->file('excel');  
        $info = $file->validate(['size'=>1567800,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');  
        if($info){  
            $exclePath = $info->getSaveName();  //获取文件名  
            $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;   //上传文件的地址  
            $objReader =\PHPExcel_IOFactory::createReader('Excel5');  
            $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8  
            echo "<pre>";  
            $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式  
            array_shift($excel_array);  //删除第一个数组(标题);  
            
            $data = [];  
            $i=0;  
            foreach($excel_array as $k=>$v) {  
                
                $data[$k]['title'] = $v[1]; 
                $data[$k]['optiona'] = $v[2];   
                $data[$k]['optionb'] = $v[3];   
                $data[$k]['optionc'] = $v[4];   
                $data[$k]['optiond'] = $v[5];   
                $data[$k]['optione'] = $v[6];   
                $data[$k]['optionf'] = $v[7];   
                $data[$k]['time']    = date('Y-m-d H:i:s',time());
                $data[$k]['themeid'] = $themeid;
                $i++;  
            }  
           $success=Db::name('sleeptopic')->insertAll($data); //批量插入数据  
           //$i=  
           $error=$i-$success;  
            echo "总{$i}条,成功{$success}条,失败{$error}条。";  
           // Db::name('t_station')->insertAll($city); //批量插入数据  
        }else{  
            // 上传失败获取错误信息  
            echo $file->getError();  
        }  
  
    }  

猜你喜欢

转载自my.oschina.net/u/3794433/blog/1801099
今日推荐