Commit d4eee384d99199c38003603c9ea5b576ef524772

Authored by teemitop
1 parent 7d1eb1e8

安卓补丁接口 submit

@@ -82,4 +82,24 @@ class Api{ @@ -82,4 +82,24 @@ class Api{
82 return json_encode($result); 82 return json_encode($result);
83 } 83 }
84 } 84 }
  85 +
  86 + //获取最新版本
  87 + public function getpatch() {
  88 + $hash_str = input('get.hash') ? input('get.hash') : '';
  89 + $hash_str = db('patch')->where(array('hash_str'=>$hash_str))->order('id desc')->limit(1)->select();
  90 + //echo db::table('patch')->getLastSql();die;
  91 + if($hash_str){
  92 + $str = "http://xt03.colorcun.com".$hash_str[0]['file_url'];
  93 + $result['ret'] = 200;
  94 + $result['data']['hash_str'] = $hash_str[0]['hash_str'];
  95 + $result['data']['file_url'] = $str;
  96 + $result['msg'] = 'success';
  97 + return json_encode($result);
  98 + }else{
  99 + $result['ret'] = 0;
  100 + $result['data'] = '';
  101 + $result['msg'] = 'fail';
  102 + return json_encode($result);
  103 + }
  104 + }
85 } 105 }
@@ -390,7 +390,7 @@ class Template extends Common{ @@ -390,7 +390,7 @@ class Template extends Common{
390 } 390 }
391 391
392 //安卓包管理 392 //安卓包管理
393 - public function android(){ 393 + public function android(){
394 if(Request::isAjax()){ 394 if(Request::isAjax()){
395 $list = db('android')->select(); 395 $list = db('android')->select();
396 foreach ($list as $key => $value) { 396 foreach ($list as $key => $value) {
@@ -598,4 +598,64 @@ class Template extends Common{ @@ -598,4 +598,64 @@ class Template extends Common{
598 public function importFile(){ 598 public function importFile(){
599 return $this->fetch(); 599 return $this->fetch();
600 } 600 }
  601 +
  602 + //安卓jar补丁列表
  603 + public function hashlist(){
  604 + if(Request::isAjax()){
  605 + $list = db('patch')->select();
  606 + foreach ($list as $key => $value) {
  607 + $list[$key]['cdate'] = date("Y-m-d H:i:s",$value['cdate']);
  608 + }
  609 + $this->assign ( 'title','安卓补丁管理');
  610 + $result = ['code'=>0,'msg'=>'获取成功!','data'=>$list,'rel'=>1];
  611 + return $result;
  612 + }
  613 + $this->assign ( 'title','安卓补丁管理' );
  614 + return view();
  615 + }
  616 +
  617 + //安卓jar补丁上传
  618 + public function hashupload(){
  619 + if(request()->isPost()){
  620 + //构建数组
  621 + $data = Request::except('file');
  622 + if(empty($data['pic'])){
  623 + $result['code'] = 0;
  624 + $result['msg'] = '请确保文件已经上传成功!';
  625 + $result['url'] = url('uploadFile');
  626 + return $result;
  627 + }
  628 + $data = array(
  629 + 'name'=>$data['name'],
  630 + 'hash_str'=>$data['hash_str'],
  631 + 'file_url'=>$data['pic'],
  632 + 'cdate'=>time(),
  633 + );
  634 + db('patch')->insert($data);
  635 + $result['code'] = 1;
  636 + $result['msg'] = 'OK!';
  637 + $result['url'] = url('hashlist');
  638 + return $result;
  639 + }
  640 + $this->assign ( 'title','安卓补丁管理' );
  641 + return $this->fetch();
  642 + }
  643 +
  644 + //删除文件
  645 + public function hashdel(){
  646 + if(Request::isAjax()){
  647 + $data = Request::except('file');
  648 +
  649 + $arr = db('patch')->where('id',$data['id'])->delete();
  650 + if($arr==1){
  651 + $result['code'] = 1;
  652 + $result['msg'] = '删除成功!';
  653 + }else{
  654 + $result['code'] = 0;
  655 + $result['msg'] = '请求错误!';
  656 + }
  657 + return $result;
  658 + }
  659 + return view();
  660 + }
601 } 661 }
@@ -167,7 +167,7 @@ class UpFiles extends Common @@ -167,7 +167,7 @@ class UpFiles extends Common
167 // 获取表单上传文件 例如上传了001.jpg 167 // 获取表单上传文件 例如上传了001.jpg
168 $file = request()->file($fileKey['0']); 168 $file = request()->file($fileKey['0']);
169 // 移动到框架应用根目录/public/uploads/ 目录下 169 // 移动到框架应用根目录/public/uploads/ 目录下
170 - $info = $file->validate(['ext' => 'apk,zip,rar,pdf,swf,ppt,psd,ttf,txt,xls,doc,docx'])->move('uploads'); 170 + $info = $file->validate(['ext' => 'apk,zip,jar,rar,pdf,swf,ppt,psd,ttf,txt,xls,doc,docx'])->move('uploads');
171 if($info){ 171 if($info){
172 $result['code'] = 0; 172 $result['code'] = 0;
173 $result['info'] = '文件上传成功!'; 173 $result['info'] = '文件上传成功!';
  1 +{include file="common/head"/}
  2 +<div class="admin-main fadeInUp animated">
  3 + <fieldset class="layui-elem-field layui-field-title">
  4 + <legend>{$title}</legend>
  5 + </fieldset>
  6 + <div class="layui-field-box">
  7 + <blockquote class="layui-elem-quote">
  8 + <a href="{:url('hashupload')}" class="layui-btn layui-btn-sm">
  9 + <i class="fa fa-file-image-o"></i> 上传包
  10 + </a>
  11 + </blockquote>
  12 + <table class="layui-table" id="list" lay-filter="list"></table>
  13 + </div>
  14 +</div>
  15 +{include file="common/foot"/}
  16 +<script type="text/html" id="barDemo">
  17 + <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">{:lang('del')}</a>
  18 +</script>
  19 +
  20 +<script>
  21 + layui.use(['table','form'], function() {
  22 + var table = layui.table,form = layui.form,$ = layui.jquery;
  23 + var tableIn = table.render({
  24 + elem: '#list',
  25 + url: '{:url("hashlist")}',
  26 + method:'post',
  27 + cols: [[
  28 + {field:'id', title: '主键ID', width:80}
  29 + ,{field:'name', title: '名称', width:100}
  30 + ,{field:'hash_str', title: 'HASH_STR', width:200}
  31 + ,{field:'file_url', title: '文件地址', width:450}
  32 + ,{field:'cdate', title: '上传日期',width:180}
  33 + ,{width:160,title: '操作', align:'center', toolbar: '#barDemo'}
  34 + ]]
  35 + });
  36 + //删除
  37 + table.on('tool(list)', function(obj){
  38 + var data = obj.data;
  39 + if(obj.event === 'del'){
  40 + layer.confirm('{:lang("Are you sure you want to delete it")}', function(index){
  41 + $.post("{:url('hashdel')}",{id:data.id},function(res){
  42 + if(res.code==1){
  43 + layer.msg(res.msg,{time:1000,icon:1});
  44 + obj.del();
  45 + }else{
  46 + layer.msg(res.msg,{time:1000,icon:2});
  47 + }
  48 + });
  49 + layer.close(index);
  50 + });
  51 + }
  52 + });
  53 + });
  54 +</script>
  55 +</body>
  56 +</html>
  1 +{include file="common/head"/}
  2 +<div class="admin-main layui-anim layui-anim-upbit" ng-app="hd" ng-controller="ctrl">
  3 + <fieldset class="layui-elem-field layui-field-title">
  4 + <legend>{$title}</legend>
  5 + </fieldset>
  6 + <blockquote class="layui-elem-quote">
  7 + <a href="{:url('hashupload')}" class="layui-btn layui-btn-sm layui-btn-danger">
  8 + <i class="fa fa-file-image-o"></i> 上传包
  9 + </a>
  10 + </blockquote>
  11 + <form class="layui-form layui-form-pane">
  12 + <div class="layui-form-item">
  13 + <label class="layui-form-label">名称</label>
  14 + <div class="layui-input-4">
  15 + <input type="text" name="name" ng-model="field.name" lay-verify="required" placeholder="{:lang('pleaseEnter')}包名" class="layui-input">
  16 + </div>
  17 + </div>
  18 + <div class="layui-form-item">
  19 + <label class="layui-form-label">HASH_STR</label>
  20 + <div class="layui-input-4">
  21 + <input type="text" name="hash_str" ng-model="field.hash_str" lay-verify="required" placeholder="{:lang('pleaseEnter')}HASH_STR" class="layui-input">
  22 + </div>
  23 + </div>
  24 + <div class="layui-form-item">
  25 + <label class="layui-form-label">文件</label>
  26 + <input type="hidden" name="pic" id="pic" value="">
  27 + <div class="layui-input-block">
  28 + <div class="layui-upload">
  29 + <button type="button" class="layui-btn layui-btn-primary" id="adBtn"><i class="icon icon-upload3"></i>点击上传</button>
  30 + </div>
  31 + </div>
  32 + </div>
  33 + <div class="layui-form-item">
  34 + <div class="layui-input-block">
  35 + <button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button>
  36 + </div>
  37 + </div>
  38 + </form>
  39 +</div>
  40 +{include file="common/foot"/}
  41 +<script src="/static/common/js/angular.min.js"></script>
  42 +<script>
  43 + var m = angular.module('hd',[]);
  44 + m.controller('ctrl',['$scope',function($scope) {
  45 + $scope.field = {type_id:'',name:'',url:'',open:1,sort:50,pic:'',content:''};
  46 + layui.use(['form', 'layer','upload'], function () {
  47 + var form = layui.form, $ = layui.jquery, upload = layui.upload;
  48 + if($scope.field.pic){
  49 + adPic.src = $scope.field.pic;
  50 + }
  51 + form.on('submit(submit)', function (data) {
  52 + // 提交到方法 默认为本身
  53 + var loading = layer.load(1, {shade: [0.1, '#fff']});
  54 + $.post("{:url('hashupload')}", data.field, function (res) {
  55 + layer.close(loading);
  56 + if (res.code > 0) {
  57 + layer.msg(res.msg, {time: 1800, icon: 1}, function () {
  58 + location.href = res.url;
  59 + });
  60 + } else {
  61 + layer.msg(res.msg, {time: 1800, icon: 2});
  62 + }
  63 + });
  64 + });
  65 + //文件上传
  66 + var uploadInst = upload.render({
  67 + elem: '#adBtn'
  68 + ,url: '{:url("UpFiles/file")}'
  69 + ,before: function(obj){
  70 + //预读本地文件示例,不支持ie8
  71 + obj.preview(function(index, file, result){
  72 +
  73 + });
  74 + },done: function(res){
  75 + if(res.code==0){
  76 + $('#pic').val(res.url);
  77 + return layer.msg('上传成功');
  78 + }else{
  79 + //如果上传失败
  80 + return layer.msg('上传失败');
  81 + }
  82 + }
  83 + });
  84 + });
  85 + }]);
  86 +</script>
1 /** layui-v2.4.5 MIT License By https://www.layui.com */ 1 /** layui-v2.4.5 MIT License By https://www.layui.com */
2 - ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['<input class="'+u+'" type="file" accept="'+t.acceptMime+'" name="'+t.field+'"',t.multiple?" multiple":"",">"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('<div class="layui-upload-wrap"></div>'),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i('<iframe id="'+f+'" class="'+f+'" name="'+f+'" frameborder="0"></iframe>'),a=i(['<form target="'+f+'" class="'+c+'" method="post" key="set-mine" enctype="multipart/form-data" action="'+t.url+'">',"</form>"].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(c)||(e.elemFile.wrap(a),t.elem.next("."+c).append(function(){var e=[];return layui.each(t.data,function(i,t){t="function"==typeof t?t():t,e.push('<input type="hidden" name="'+i+'" value="'+t+'">')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){i="function"==typeof i?i():i,r.append(e,i)}),i.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files},resetFile:function(e,i,t){var n=new File([i],t);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==t&&!l.auto||(l.choose&&l.choose(g),"choose"!==t))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?t.toFixed(2)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after('<span class="layui-inline '+s+'">'+o+"</span>")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)});  
  2 + ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['<input class="'+u+'" type="file" accept="'+t.acceptMime+'" name="'+t.field+'"',t.multiple?" multiple":"",">"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('<div class="layui-upload-wrap"></div>'),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i('<iframe id="'+f+'" class="'+f+'" name="'+f+'" frameborder="0"></iframe>'),a=i(['<form target="'+f+'" class="'+c+'" method="post" key="set-mine" enctype="multipart/form-data" action="'+t.url+'">',"</form>"].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(c)||(e.elemFile.wrap(a),t.elem.next("."+c).append(function(){var e=[];return layui.each(t.data,function(i,t){t="function"==typeof t?t():t,e.push('<input type="hidden" name="'+i+'" value="'+t+'">')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){i="function"==typeof i?i():i,r.append(e,i)}),i.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files},resetFile:function(e,i,t){var n=new File([i],t);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==t&&!l.auto||(l.choose&&l.choose(g),"choose"!==t))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jar|apk|mp4|jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?t.toFixed(2)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after('<span class="layui-inline '+s+'">'+o+"</span>")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)});