//导入电话号码 public function postTel(){ set_time_limit(0); ini_set('memory_limit','1024M'); $params = Input::all(); $add_data['admin_id'] = Auth::user()->id; //更新 if($params['id']){ if($this->service->updateOne($params)){ return ['success'=>1,'message'=>'更新成功']; }else{ return ['success'=>0,'message'=>'更新成功'.$this->service->getError()]; } }else{ //新增 if($params['content'] == ''){ return ['success'=>0,'message'=>'添加失败,短信内容不能为空']; } $file_path=''; $message=''; if($this->upload($file_path,$message,true)===false) { return ['success'=>0,'message'=>'添加失败'.$message]; } $import_result=$this->qqImportExecute($file_path,$message); if($import_result===false) { return ['success'=>0,'message'=>'添加失败'.$message]; } $params['mobile'] = $import_result; if($this->service->addOne($params)){ return ['success'=>1,'message'=>'新增成功']; }else{ return ['success'=>0,'message'=>'添加失败'.$this->service->getError()]; } } } private function upload(&$file_path,&$message,$rand) { $upload_path='sms/imports'; $file_max_size=1024 * 1024*50; //文件最大 $file_types=array('xls','xlsx','csv'); if(count($_FILES)==0 || $_FILES['import']['size'] ==0) { $message="电话号码不能为空"; return false; } $files=array_values($_FILES); $up_file=$files[0]; $file_size=$up_file['size']; if($file_size>$file_max_size) { $message='你上传的文件过大,最大为:' . $file_max_size/1024/1024 . 'MB'; return false; } $up_filename=$up_file['name']; $filename_arr=explode('.', $up_filename); $file_ext=array_pop($filename_arr); if(!in_array($file_ext,$file_types)) { $message='你上传的文件类型不对!目前只支持'. implode(',', $file_types);; return false; } //创建导入根目录 $upload_path=storage_path($upload_path); if(!is_dir($upload_path) && !@mkdir($upload_path, 0777, true)) { $message='上传配置路径配置不对!'; return false; } $tmp_name=$up_file['tmp_name']; if($rand){ list($file_name,$file_ext) = explode('.', $files[0]['name']) ; if($file_ext=='xlsx'){ $file_ext = 'xls'; } $filename= md5($file_name).'.'.$file_ext; $file_path=$upload_path. '/' . $filename; }else{ $filename=date('YmdHis',time()). rand(10, 99) .'.' . $file_ext; $file_path=$upload_path. '/' . $filename; } if(!move_uploaded_file($tmp_name,$file_path)){ $message='上传文件失败!'; return false; } return true; } private function qqImportExecute($file_path,&$message) { set_time_limit(0); ini_set('memory_limit','1024M'); if(!file_exists($file_path)) { $message="文件找不到!"; return false; } //获取表中的数据 $rows = $this->Excelfile_to_row_Array($file_path,0); if(count($rows)==0) { $message="没有可操作的数据。"; return false; } if($rows){ $data = []; foreach($rows as $key=>$val){ if(!$val[0]){ continue; } if(preg_match("/^1\d{10}$/",trim($val[0]))){ $data[] = $val[0]; } } return $data; } return true; } public function Excelfile_to_row_Array($file_path,$sheet_site=0){//将文件转换成数组 $objPHPExcel = Excel::load($file_path); $sheets = $objPHPExcel->getALLSheets(); $countSheets = count($sheets); $sheetsinfo = array(); $sheetData = array(); $sheet = $sheets[$sheet_site]; $row_count=$sheet->getHighestRow(); if($row_count<=1) { $message="上传的excel格式不对,或没数据"; return false; } $sheetsinfo["rows"] = $sheet->getHighestRow(); $sheetsinfo["column"] = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); for($row=1;$row<=$sheetsinfo["rows"];$row++){ for($col=0;$col<$sheetsinfo["column"];$col++){ $sheetData[$row][$col] = trim($sheet->getCellByColumnAndRow($col,$row)->getValue(),'='); } } return $sheetData; }