前端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> 首页 > 短信发送 > 发送模版短信
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="width: 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+"\r\n";
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>
后端代码:
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). "\n";
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 }
excel:
第一列是手机号,后面几列对应的是参数
大家有问题可以随时留言



所有评论(0)