PHP导入excel发送网易云信短信

前端HTML代码:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8"/>
  5     <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  6     <title>发送模版短信</title>
  7     <bootstrapcss/>
  8     <webuploadercss/>
  9     <icheckcss/>
 10 </head>
 11 <body>
 12 <div class="bjy-admin-nav">
 13     <i class="fa fa-home"></i> 首页 &gt; 短信发送 &gt; 发送模版短信
 14 </div>
 15 <ul id="myTab" class="nav nav-tabs">
 16     <li class="active">
 17         <a href="#">发送模版短信</a>
 18     </li>
 19 
 20 </ul>
 21 <form action=""  method="post">
 22     <table class="table table-striped table-bordered table-hover table-condensed">
 23 
 24         <tr>
 25             <th width="15%">上传导入号码</th>
 26             <td>
 27                 <div style=" 50%;float: left">
 28                 <textarea class="form-control" id="scan" cols="60" rows="10" readonly></textarea>
 29                 <div id="uploader" class="wu-example">
 30                     <!--用来存放文件信息-->
 31                     <div id="thelist" name="fileName" class="uploader-list">
 32                     </div>
 33                     <div class="btns">
 34                         <div id="picker">选择文件</div>
 35                     </div>
 36                 </div>
 37                 </div>
 38             </td>
 39         </tr>
 40         <tr>
 41             <th>模版内容</th>
 42             <td>
 43                 <textarea class="form-control" rows="5" cols="40"  id="text" name="content" readonly>{$templateInfo['content']}</textarea>
 44             </td>
 45         </tr>
 46         <tr>
 47             <th>注意事项</th>
 48             <td>
 49                 云信短信计费包括短信签名,70字计1条短信费,超过70字则以67字每条计费,当短信中出现中文字符,则单个汉字、英文、标点和空格等都算一个字。<br>
 50                 创建说明:<br>
 51 
 52                 1、网易云信提供的模板短信由固定内容与多个变量构成,其中 " %s " 为需要接口替换的变量,变量内容可以是汉字、字母、数字或者特殊字符组合,但单个变量内容长度不得超过30个字,一条模板短信中变量数量不限制,短信模板总字数限制300字内;<br>
 53 
 54                 2、"【云短信】"为云信系统默认提供的短信模板签名,在设置短信模板内容中不需要再填写短信签名。
 55             </td>
 56         </tr>
 57         <input class="form-control" type="hidden" name="templateId" value="{$templateInfo['templateId']}">
 58         <input class="form-control" type="hidden" name="title" value="{$templateInfo['title']}">
 59         <input type="hidden" name="fileurl" value="" id="fileurl">
 60         <tr>
 61             <th></th>
 62             <td>
 63                 <input class="btn btn-success" type="submit" value="发送">
 64             </td>
 65         </tr>
 66     </table>
 67 
 68     <!--<webuploader name="image" url="{:U('Home/Index/ajax_upload')}" word="或将照片拖到这里,单次最多可选300张"/>-->
 69 </form>
 70 <bootstrapjs/>
 71 <webuploaderjs/>
 72 <script type="text/javascript" >
 73     /* 文件上传 */
 74     var $list = $("#thelist");
 75     var l = new Array();
 76     var uploader = WebUploader.create({
 77         // 选完文件后,是否自动上传。
 78         auto : true,
 79         // 文件接收服务端。
 80         server : '{:U("Home/Index/ajax_upload_excel")}',
 81         // 选择文件的按钮。可选。
 82         // 内部根据当前运行是创建,可能是input元素,也可能是flash.
 83         pick : '#picker',
 84         // 不压缩, 默认如果是jpeg,文件上传前会压缩一把再上传!
 85         resize : false,
 86         // 指定上传的模块
 87         formData : {
 88             "model" : "counsel"
 89         }
 90     });
 91 
 92     // 当有文件被添加进队列的时候
 93     uploader.on('fileQueued', function(file) {
 94         $list.append('<div id="' + file.id + '" class="item">'
 95             + '<h4 class="info">' + file.name + '</h4>'
 96             + '<p class="state">等待上传...</p>' + '</div>');
 97     });
 98 
 99     //response是可以接收从后台传回的数据
100     uploader.on('uploadSuccess', function(file, response) {
101         var fileurl=response.name;
102         console.log(response.receive);
103         var json = response;
104         json = eval(json.receive)
105         var ele = document.getElementById("scan");
106         document.getElementById("scan").value="";
107         document.getElementById("fileurl").value='';
108         document.getElementById("fileurl").value=fileurl;
109         for(var i=0; i<json.length; i++)
110         {
111             var rec=json[i].join(",");
112             ele.value = ele.value +rec+"
";
113         }
114         $('#' + file.id).find('p.state').text('已上传');
115 
116     });
117 
118     uploader.on('uploadError', function(file) {
119         $('#' + file.id).find('p.state').text('上传出错');
120     });
121 
122 
123     uploader.on('uploadComplete', function(file) {
124         $('#' + file.id).find('.progress').fadeOut();
125     });
126 
127 
128 </script>
129 <icheckjs color="blue"/>
130 </body>
131 </html>
View Code

后端代码:

 1     /**
 2      * 发送短信
 3      */
 4     public function sendtemplatesms(){
 5         if(IS_POST){
 6 
 7                 //返回成功信息
 8                $fileurl=I('post.fileurl');
 9 
10                $result=import_excel('.'.$fileurl);
11                foreach ($result as $k=>$v){
12                    $msg['time']=time();
13                    $msg['admin']=$_SESSION['user']['username'];
14                    $msg['templateId']=I('post.templateId');
15                    $msg['receiver']=$v['0'];
16                    //组合参数
17                    $par=$v;
18                    array_shift($par). "
";
19                    $params=$par;
20                    $resultmsg=yx_sendsms($msg['templateId'],$mobile=array($v['0']),$params);  //发送短信
21 
22                    $msg['status']=$resultmsg['code'];
23                    $msg['sendId']=$resultmsg['obj'];
24                    $content = I('post.content');
25                    $arr = $par;
26                    // 分开
27                    $s = explode('%s', $content);
28                    $c = count($s);
29                    // 组合(提交的参数代替s%)
30                    $content = '';
31                    for ($i = 0; $i < $c; ++$i)
32                    {
33                        $content .= $s[$i].(isset($arr[$i])?$arr[$i]:'');
34                    }
35                    $msg['content']=$content;
36                    M('msgrecord')->add($msg);  //发送记录存入数据库
37                }
38                 $this->success('发送完成',U('Admin/Sendsms/msgrecord'));
39             }else{
40             $id=I('get.id');
41             if($id){
42                 $templateInfo=M('msgtemplate')->where(array('id'=>$id))->find();
43             }else{
44                 $this->error('参数错误');
45             }
46             $this->assign('templateInfo',$templateInfo);
47             $this->display();
48         }
49     }
View Code

excel:

 第一列是手机号,后面几列对应的是参数

大家有问题可以随时留言

原文地址:https://www.cnblogs.com/wang-yang/p/7427684.html