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

laravel 实现上传 excel的更多相关文章

  1. java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)

    使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...

  2. SMW0上传EXCEL模板时报错无分配给对象***的MIME类型

    在使用SMW0上传照片.声音文件.EXCEL模板等文件时,遇到报错提示,如下图所示: 解决办法:需要先维护 .XLS 文件的MIME TYPE,SMW0 打开如下图所示 选择上图红色框中“WebRFC ...

  3. Uploadify上传Excel到数据库

    前两章简单的介绍了Uploadify上传插件的基本使用和相关的属性说明.这一章结合Uploadify+ssh框架+jquery实现Excel上传并保存到数据库.         以前写的这篇文章 Jq ...

  4. SpringMVc上传excel或csv文件

    1.JSP页面代码 <form enctype=""multipart/form-data" method="post"> <inp ...

  5. 使用ocupload和POI一键上传Excel并解析导入数据库

    使用的工具如下:  JQuery ocupload jquery.ocupload-1.1.2.js Apache POI poi-3.9.jar 如果是Maven项目添加依赖如下: <depe ...

  6. java上传excel到后台解析入库

    背景:最近需要做一个excel模板导入的功能,以便用户可以自己增删改查数据,当然,只有特别的用户才能有此权限,捋了捋思路,还是从前端写起 实现: 页面最后的效果如下,可以自己修改,删除,导入导出数据, ...

  7. laravel 文件上传

    laravel 文件上传 先开扩展 表单中能够选择图片 数据处理C层, 接图片并保存 保存图片: 设置目录 store()的第一个参数说明: 存放图片的子目录. 如何获取文件的类型 大小: $uplo ...

  8. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  9. SpringBoot(十三)_springboot上传Excel并读取excel中的数据

    今天工作中,发现同事在整理数据,通过excel上传到数据库.所以现在写了篇利用springboot读取excel中的数据的demo.至于数据的进一步处理,大家肯定有不同的应用场景,自行修改 pom文件 ...

随机推荐

  1. windows批处理的介绍

    扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命 ...

  2. Python学习第一天 -- 简单的属性、 语法学习

    1,哈哈哈,是时候来一波Python,其实没办法,最近在做后台的时候,需要用到Python来调试接口,下面是它的简单的语法,权当是记录. 2, #!/user/bin/python # coding= ...

  3. java的基本数据类型有八种:

    1)四种整数类型(byte.short.int.long):    byte:8 位,用于表示最小数据单位,如文件中数据,-128~127    short:16 位,很少用,-32768 ~ 327 ...

  4. sqlite简单使用

    c创建表: create table 表名称(元素名称 类型,,,): 插入数据:insert into 表名称 values(null,,,) 修改数据   : update 表名 set 字段=’ ...

  5. SqlServer 一个查询语句以致tempdb增大55G (转载)

    SqlServer 一个查询语句导致tempdb增大55G 今天操作着服务器,突然右下角提示“C盘空间不足”! 吓一跳!~ 看看C盘,还有7M!!!这么大的C盘空间怎么会没了呢?搞不好等下服务器会动不 ...

  6. 轻松三步教你配置Oracle—windows环境

    最近笔者在学习Oracle的时候,虽然度过了大家所说的安装难题,但是又遇到了一系列的问题,经过多方求教才知道原来是自己仅仅是安装了Oracle,却没有在环境变量中进行相应的配置.笔者也像大家遇到问题时 ...

  7. 整盘恢复黑苹果后,重新安装Win7,卡在正在启动

    是这样的: GHOST整个黑苹果的镜像,然后恢复到Thinkpad e450c上,能启动,但是驱动不对,最主要是网卡驱动不了(据说) 然后重新分区,安装Win7 哦豁 卡在 正在启动windows 多 ...

  8. zabbix_sender自定义监控

    这里推荐这个博客 http://www.ttlsa.com/monitor/zabbix/ 在这里学一遍都不用买书,直接就能玩转zabbix了 回归正题 zabbix相关包下载地址:http://ww ...

  9. 20160929001 Guid生成

    全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.   using System; namespace GUID测试 ...

  10. Bootstrap_列表组

     一.基本列表组 列表组是Bootstrap框架新增的一个组件,可以用来制作列表清单.垂直导航等效果,也可以配合其他的组件制作出更漂亮的组件. <ul class="list-grou ...