public function add() { $tmp_file = $_FILES['file_stu']['tmp_name']; $file_types = explode(".", $_FILES['file_stu']['name']); $file_type = $file_types[count($file_types) - 1]; /*判别是不是.xls文件,判别是不是excel文件*/ if (strtolower($file_type) != "xlsx" && strtolower($file_type) != "xls") { $this->error('不是Excel文件,重新上传'); } /*设置上传路径*/ $savePath = '/customer_imgs/' . $token . '/'; if (!file_exists($_SERVER['DOCUMENT_ROOT'] . $savePath)) { mkdir($_SERVER['DOCUMENT_ROOT'] . $savePath); } /*以时间来命名上传的文件*/ $file_name = date('Ymdhis') . "." . $file_type; /*是否上传成功*/ if (!copy($tmp_file, $savePath . $file_name)) { $this->error('上传失败'); } $ExcelToArrary = new ExcelToArrary(); //实例化 $res = $ExcelToArrary->read($savePath . $file_name, "UTF-8", $file_type); //传参,判断office2007还是office2003 foreach ($res as $k => $v) { $k = $k - 1; //addAll方法要求数组必须有0索引 $data[$k]['name'] = $v[0]; //创建二维数组 $data[$k]['tel'] = $v[1]; $data[$k]['sex'] = $v[2]; $data[$k]['birthday'] = $v[3]; $data[$k]['address'] = $v[4]; } $kucun = M('kucun'); //M方法 $result = $kucun->addAll($data); if (!$result) { $this->error('导入数据库失败'); exit; } else { $this->success('导入成功'); } }
/** * Desc : import department * * @author Jason Hu * @since 2014-9-12 */ public function import_dept() { $token = session("token"); $tmp_file = $_FILES['department']['tmp_name']; $file_types = explode(".", $_FILES['department']['name']); $file_type = $file_types[count($file_types) - 1]; /*判别是不是.xls文件,判别是不是excel文件*/ if (strtolower($file_type) != "xlsx" && strtolower($file_type) != "xls") { $this->error('不是Excel文件,重新上传'); } /*设置上传路径*/ $savePath = $_SERVER['DOCUMENT_ROOT'] . '/customer_imgs/' . $token . '/'; if (!file_exists($savePath)) { mkdir($savePath); } /*以时间来命名上传的文件*/ $file_name = date('Ymdhis') . "." . $file_type; /*是否上传成功*/ ini_set('display_errors', 1); error_reporting(E_ALL); if (!move_uploaded_file($tmp_file, $savePath . $file_name)) { $this->error('上传失败'); } $alldept = M('department')->where(array('token' => $token, 'status' => '1'))->field('name')->select(); $dept = array(); foreach ($alldept as $v) { $dept[] = $v['name']; } import('ORG.ExcelToArrary'); $ExcelToArrary = new ExcelToArrary(); //实例化 $res = $ExcelToArrary->read($savePath . $file_name, "UTF-8", $file_type); //传参,判断office2007还是office2003 $insertCount = 0; $data = array(); $filterSame = array(); $same = array(); foreach ($res as $k => $v) { // skip the title if ($k == 1) { continue; } if ($filterSame && in_array($v[1], $filterSame)) { $same[] = $v[1]; } if ((!$dept || !in_array($v[1], $dept)) && !in_array($v[1], $filterSame)) { $filterSame[] = $v[1]; $data[$insertCount]['name'] = $v[1]; $data[$insertCount]['token'] = $token; $data[$insertCount]['status'] = '1'; $data[$insertCount]['create_time'] = time(); $insertCount = $insertCount + 1; } } $result = M("department")->addAll($data); if ($insertCount > 0 ? $result : true) { $msg = '会员资料导入成功,导入会员' . $insertCount . "个。"; if (count($same) > 0) { $msg .= "有" . count($same) . "个重复。"; } $this->success('导入成功', U('Wsc/department_index')); } else { $this->error('服务器繁忙,请稍候再试', U(MODULE_NAME . '/department_index')); } }
/** *导入实体会员 **/ public function physicalmemberimport() { $token = session("token"); $tmp_file = $_FILES['file_stu']['tmp_name']; $file_types = explode(".", $_FILES['file_stu']['name']); $file_type = $file_types[count($file_types) - 1]; /*判别是不是.xls文件,判别是不是excel文件*/ if (strtolower($file_type) != "xlsx" && strtolower($file_type) != "xls") { $this->error('不是Excel文件,重新上传'); } /*设置上传路径*/ $savePath = $_SERVER['DOCUMENT_ROOT'] . '/customer_imgs/' . $token . '/'; if (!file_exists($savePath)) { mkdir($savePath); } /*以时间来命名上传的文件*/ $file_name = date('Ymdhis') . "." . $file_type; /*是否上传成功*/ ini_set('display_errors', 1); error_reporting(E_ALL); if (!move_uploaded_file($tmp_file, $savePath . $file_name)) { $this->error('上传失败'); } $ExcelToArrary = new ExcelToArrary(); //实例化 $res = $ExcelToArrary->read($savePath . $file_name, "UTF-8", $file_type); //传参,判断office2007还是office2003 $dump = ""; $index = 0; $upFailedCount = 0; $upSuccessCount = 0; foreach ($res as $k => $v) { // skip the title if ($v[0] == "姓名") { continue; } //根据电话号码去除数据库中已存在的项 $row = M('physical_member')->where(array('token' => $token, 'tel' => $v[2]))->find(); if ($row) { $row['name'] = $v[0]; $row['cardnum'] = $v[1]; $row['tel'] = $v[2]; $row['sex'] = $v[3] ? $v[3] == '男' ? 1 : 2 : 0; $row['birthday'] = $v[4]; $row['address'] = $v[5]; $row['token'] = $token; $res = M('physical_member')->save($row); if ($res >= 0) { $upSuccessCount++; } else { $upFailedCount++; } } else { $data[$index]['name'] = $v[0]; //创建二维数组 $data[$index]['cardnum'] = $v[1]; $data[$index]['tel'] = $v[2]; $data[$index]['sex'] = $v[3] ? $v[3] == '男' ? 1 : 2 : 0; $data[$index]['birthday'] = $v[4]; $data[$index]['address'] = $v[5]; $data[$index]['token'] = $token; $index = $index + 1; } $dump = $k . " " . $v[0] . " " . $v[1] . " " . $v[2] . " " . $v[3] . " " . $v[4]; Log::record($dump . "\r\n", Log::DEBUG); } $result = M("physical_member")->addAll($data); if ($repeateCount > 0) { $upres = M('physical_member')->save($updata); echo $upres; } Log::record($result . "\r\n" . $upres . "\r\n", Log::DEBUG); Log::save(); if ($index > 0 ? $result : true) { $msg = '会员资料导入成功,导入会员' . $index . "个。"; if ($upSuccessCount > 0) { $msg = $msg . "覆盖" . $upSuccessCount . "个。"; } $this->success($msg); } else { $this->error('服务器繁忙,请稍候再试'); } }