数据导入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());
}
}