Commit 7da3a7eb3dfcf980dff0cd54bae82c289ad2e796

Authored by u123231312
1 parent 0a446ba4

PC静态资源管理

... ... @@ -341,4 +341,17 @@ class Auth extends Common
$this->assign('qrcode_path',$arr['data']);
return view();
}
//增加运营管理人员
public function operateDel(){
//缓存60秒 不请求。
$arr = cache('qrcod_url');
if(!$arr){
$arr= file_get_contents("http://xt.colorcun.com/WechatApi/WechatApi/CreateOperateQrcode/");
$arr = json_decode($arr,TRUE);
cache('qrcod_url',$arr, 50);
}
$this->assign('qrcode_path',$arr['data']);
return view();
}
}
\ No newline at end of file
... ...
... ... @@ -238,4 +238,33 @@ class Template extends Common{
}
}
/**
* GIF图片、短视频上传
*/
public function uploadFile(){
if(request()->isPost()){
//参数获取
/*[param] => Array
(
[name] => 1231
[pic] => /uploads/20180830/e9b8b46312a7ad1c6a52e2f762c524bf.jpg
[file] =>
[content] => 123131
[ad_id] =>
)
[post] => Array
(
[name] => 1231
[pic] => /uploads/20180830/e9b8b46312a7ad1c6a52e2f762c524bf.jpg
[file] =>
[content] => 123131
[ad_id] =>
)*/
//print_r(request()->param());die;
}
$this->assign ( 'title','GIF、短视频上传' );
return $this->fetch();
}
}
\ No newline at end of file
... ...
<?php
namespace app\admin\controller;
require '../vendor/Qiniu/autoload.php';
use think\Db;
use think\Request;
use think\Controller;
use think\facade\Env;
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;
class UpFiles extends Common
{
public function upload(){
... ... @@ -29,6 +33,76 @@ class UpFiles extends Common
return $result;
}
}
public function qncloud(){
$dir = "www";
// 获取上传文件表单字段名
$fileKey = array_keys(request()->file());
// 获取表单上传文件
$file = request()->file($fileKey['0']);
$obj = $file->getInfo();
$rs = array('code' => 0, 'url' => '');
$tmpName = $obj['tmp_name'];
$name = md5($obj['name'] . $_SERVER['REQUEST_TIME']);
$ext = strrchr($obj['name'], '.');
$uploadFolder = sprintf('%suploads/'.$dir.'/',$_SERVER['DOCUMENT_ROOT']);
if (!is_dir($uploadFolder)) {
mkdir($uploadFolder);
chmod($uploadFolder,0777);
}
$imgPath = $uploadFolder . $name . $ext;
//移动到临时目录
if (move_uploaded_file($tmpName, $imgPath)) {
$accessKey = 'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7';
$secretKey = 'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs';
$auth = new Auth($accessKey, $secretKey);
$bucket = 'colorcun-pc';
$key = $obj['name'];
// 生成上传Token
$token = $auth->uploadToken($bucket);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
$backUrl = "pe9jzv1q9.bkt.clouddn.com"; //返回图片在七牛的路径
list($ret, $err) = $uploadMgr->putFile($token,$key,$imgPath);
// 获取视频的时长
// 第一步先获取到到的是关于视频所有信息的json字符串
//$shichang = file_get_contents('http://'.WAILIAN.$key.'?avinfo');
// 第二部转化为对象
//$shi =json_decode($shichang);
// 第三部从中取出视频的时长
//$chang = $shi->format->duration;
// 获取封面
//$path ='http://'.WAILIAN.$ret['key'];
/*$data = [
'path' => $path,
'pic' =>$vpic,
];
$result = Db::name('image')->insert($data);
// dump(Db::getLast);
if (!$result) {
return '失败';
} else {
return '成功';
}*/
$rs['url'] = $backUrl."/".$key;
}
if($rs['url']){
//上传成功之后删除服务器文件
unlink($imgPath);
$result['code'] = 1;
$result['info'] = '图片上传成功!';
$path=str_replace('\\','/',$rs['url']);
$result['url'] = $path;
return $result;
}else{
// 上传失败获取错误信息
$result['code'] =0;
$result['info'] = $file->getError();
$result['url'] = '';
return $result;
}
}
public function file(){
$fileKey = array_keys(request()->file());
// 获取表单上传文件 例如上传了001.jpg
... ...
{include file="common/head"/}
<div class="admin-main layui-anim layui-anim-upbit" ng-app="hd" ng-controller="ctrl">
<fieldset class="layui-elem-field layui-field-title">
<legend>{$title}</legend>
</fieldset>
<blockquote class="layui-elem-quote">
<a href="{:url('uploadFile')}" class="layui-btn layui-btn-sm layui-btn-danger">
<i class="fa fa-file-image-o"></i> GIF图片、短视频上传
</a>
</blockquote>
<form class="layui-form layui-form-pane">
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-4">
<input type="text" name="name" ng-model="field.name" lay-verify="required" placeholder="{:lang('pleaseEnter')}图片/视频名称" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">图片/视频</label>
<input type="hidden" name="pic" id="pic" value="{{field.pic}}">
<div class="layui-input-block">
<div class="layui-upload">
<button type="button" class="layui-btn layui-btn-primary" id="adBtn"><i class="icon icon-upload3"></i>点击上传</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="adPic">
<p id="demoText"></p>
<video src="" id="adVideo" controls="controls" style="width: 300px;height: 200px;display: none">
您的浏览器不支持 video 标签。
</video>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea ng-model="field.content" placeholder="请输入图片/视频备注" name="content" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button>
</div>
</div>
</form>
</div>
{include file="common/foot"/}
<script src="/static/common/js/angular.min.js"></script>
<script>
var m = angular.module('hd',[]);
m.controller('ctrl',['$scope',function($scope) {
$scope.field = {type_id:'',ad_id:'',name:'',url:'',open:1,sort:50,pic:'',content:''};
layui.use(['form', 'layer','upload'], function () {
var form = layui.form, $ = layui.jquery, upload = layui.upload;
if($scope.field.pic){
adPic.src = $scope.field.pic;
}
form.on('submit(submit)', function (data) {
// 提交到方法 默认为本身
data.field.ad_id = $scope.field.ad_id;
var loading = layer.load(1, {shade: [0.1, '#fff']});
$.post("{:url('uploadFile')}", data.field, function (res) {
layer.close(loading);
if (res.code > 0) {
layer.msg(res.msg, {time: 1800, icon: 1}, function () {
location.href = res.url;
});
} else {
layer.msg(res.msg, {time: 1800, icon: 2});
}
});
});
//GIF/视频上传
var uploadInst = upload.render({
elem: '#adBtn'
,url: '{:url("UpFiles/qncloud")}'
,before: function(obj){
//预读本地文件示例,不支持ie8
obj.preview(function(index, file, result){
if(result.substring(5,10)=="image"){
$('#adPic').attr('src', result); //图片链接(base64)
$('#adPic').css('display', 'block');
$("#adVideo").css('display', 'none');
}else{
$("#adVideo").get(0).src=result; //图片链接(base64)
$("#adVideo").css('display', 'block');
$('#adPic').css('display', 'none');
}
});
},done: function(res){
if(res.code>0){
$('#pic').val(res.url);
return layer.msg('上传成功');
}else{
//如果上传失败
return layer.msg('上传失败');
}
}
,error: function(){
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
uploadInst.upload();
});
}
});
});
}]);
</script>
\ No newline at end of file
... ...
/** layui-v2.3.0 MIT License By https://www.layui.com */
;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="'+t.method,'" 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:l.method,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)});
\ No newline at end of file
;
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="' + t.method, '" 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: l.method,
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|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 || "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)
});
\ No newline at end of file
... ...