博客列表 >CSV文件导入

CSV文件导入

dxp2tq的博客
dxp2tq的博客原创
2019年03月18日 10:36:111564浏览

数据导入csv导入最简单

下面以抽奖用户导入为案例




/**
* CSV抽奖用户导入
*/
public function userwrite()
{
   // 获取表单上传文件
   $file = request()->file('csvfile');
   /*echo "<pre>";
   var_dump($file);die;*/
   if(empty($file)) {
       $this->error('请选择上传文件');
   }
   // 移动到框架应用根目录/public/uploads/ 目录下
   $info = $file->move(ROOT_PATH.'runtime'.DS.'upload');
   //获取文件(日期/文件),$info->getFilename();
   $filename = ROOT_PATH.'runtime'.DS.'upload/'.$info->getSaveName();
   $handle = fopen($filename,'r');
   $csv = new Csv();
   $result = $csv->input_csv($handle); // 解析csv
   $len_result = count($result);
   if($len_result == 0){
       $this->error('此文件中没有数据!');
   }
   $data_values = '';
   for($i = 1;$i < $len_result+1;$i ++) { // 循环获取各字段值
       $arr = array_values($result[$i]);
       $qu_name = iconv('gb2312','utf-8',$arr[0] ); // 中文转码
       $qu_options = iconv('gb2312','utf-8',$arr[1]);
       $create_time = time();
       $update_time = time();
       $create_by = session('session.name');

       $data_values .= "('$qu_name','$qu_options','$create_time','$update_time','$create_by'),";
   }
   $data_values = substr($data_values,0,- 1 ); // 去掉最后一个逗号
   fclose($handle); // 关闭指针
   // 批量插入数据表中
   $result = DB::execute("insert into     clcd_lucky_user (phone,times,create_time,update_time,create_by) values $data_values" );
   if($result){
       $this->success('文件上传成功,数据已经导入!','lucklist',3);
   }else{
       // 上传失败获取错误信息
       $this->error($file->getError());
   }
}

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议