//导入电话号码
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;
}