123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /**
- * HTML5 批量文件上传
- * @author yangjian <yangjian102621@gmail.com>
- * @since v4.1.12(2017-09-12)
- * @site http://git.oschina.net/blackfox/kindeditor
- */
- KindEditor.plugin('multiimage', function(K) {
- var self = this, name = 'multiimage',
- uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'),
- fileManagerJson = K.undef(self.fileManagerJson, self.basePath + 'php/file_manager_json.php'),
- imageSizeLimit = K.undef(self.imageSizeLimit, 2048), //单位KB
- imageFileTypes = K.undef(self.imageFileTypes, 'jpg|png|gif|jpeg'),
- imageUploadLimit = K.undef(self.imageUploadLimit, 20),
- filePostName = K.undef(self.filePostName, 'imgFile'),
- lang = self.lang(name + '.');
- if(typeof jQuery == 'undefined') {
- K.options.errorMsgHandler(lang.depJQueryError, "error");
- return;
- } else {
- K.loadScript(K.options.pluginsPath+name+"/BUpload.js");
- K.loadStyle(K.options.pluginsPath+name+"/css/upload.css");
- }
- //锁屏插件
- K.locker = function () {
- var docWidth = Math.max(document.documentElement.clientWidth, document.body.clientWidth);
- var docHeight = Math.max(document.documentElement.clientHeight, document.body.clientHeight, $(document).height()) + document.documentElement.scrollTop;
- return K.widget({
- x : 0,
- y : 0,
- cls : 'ke-dialog-lock',
- width : docWidth,
- height : docHeight
- });
- }
- self.plugin.multiImageDialog = function(options) {
- if ( !window.applicationCache ) {
- K.options.errorMsgHandler("您当前的浏览器不支持HTML5,请先升级浏览器才能使用该上传插件!", "error");
- return;
- }
- var clickFn = options.clickFn;
- var locker = K.locker();
- locker.show();
- var dialog = new BUpload({
- src : filePostName,
- upload_url : uploadJson,
- list_url : fileManagerJson, //图片列表数据获取url
- max_filesize : imageSizeLimit,
- max_filenum : imageUploadLimit,
- ext_allow : imageFileTypes,
- lang : lang,
- top : self.dialogOffset,
- fileType : "image",
- errorHandler : K.options.errorMsgHandler,
- callback : function(data) {
- //console.log(data);
- clickFn.call(this, data);
- },
- close : function () {
- locker.remove();
- }
- });
- return dialog;
- };
- self.clickToolbar(name, function() {
- self.plugin.multiImageDialog({
- clickFn : function (urlList) {
- if (urlList.length === 0) {
- return;
- }
- K.each(urlList, function(i, data) {
- if (self.afterUpload) {
- self.afterUpload.call(self, data, data, 'multiimage');
- }
- self.exec('insertimage', data);
- });
- // Bugfix: [Firefox] 上传图片后,总是出现正在加载的样式,需要延迟执行hideDialog
- setTimeout(function() {
- self.hideDialog().focus();
- }, 0);
- }
- });
- });
- });
|