diff --git a/src/modules/upload.js b/src/modules/upload.js
index cfea6032..93520c9d 100644
--- a/src/modules/upload.js
+++ b/src/modules/upload.js
@@ -75,7 +75,15 @@ layui.define(['lay','layer'], function(exports){
drag: true, // 是否允许拖拽上传
size: 0, // 文件限制大小,默认不限制
number: 0, // 允许同时上传的文件数,默认不限制
- multiple: false // 是否允许多文件上传,不支持ie8-9
+ multiple: false, // 是否允许多文件上传,不支持 ie8-9
+ text: { // 自定义提示文本
+ "cross-domain": "Cross-domain requests are not supported", // 跨域
+ "data-format-error": "Please return JSON data format", // 数据格式错误
+ "check-error": "", // 文件格式校验失败
+ "error": "", // 上传失败
+ "limit-number": null, // 限制 number 属性的提示 --- function
+ "limit-size": null // 限制 size 属性的提示 --- function
+ }
};
// 初始渲染
@@ -181,6 +189,7 @@ layui.define(['lay','layer'], function(exports){
Class.prototype.upload = function(files, type){
var that = this;
var options = that.config;
+ var text = options.text || {};
var elemFile = that.elemFile[0];
// 获取文件队列
@@ -236,7 +245,7 @@ layui.define(['lay','layer'], function(exports){
},
error: function(e){ // 异常回调
options.unified ? (failed += that.fileLength) : failed++;
- that.msg([
+ that.msg(text['error'] || [
'Upload failed, please try again.',
'status: '+ (e.status || '') +' - '+ (e.statusText || 'error')
].join('
'));
@@ -283,14 +292,14 @@ layui.define(['lay','layer'], function(exports){
that.elemFile.parent().submit();
- //获取响应信息
+ // 获取响应信息
clearInterval(Class.timer);
Class.timer = setInterval(function() {
var res, iframeBody = iframe.contents().find('body');
try {
res = iframeBody.text();
} catch(e) {
- that.msg('Cross-domain requests are not supported');
+ that.msg(text['cross-domain']);
clearInterval(Class.timer);
error();
}
@@ -313,7 +322,7 @@ layui.define(['lay','layer'], function(exports){
res = JSON.parse(res);
} catch(e){
res = {};
- return that.msg('Please return JSON data format');
+ return that.msg(text['data-format-error']);
}
}
}
@@ -376,7 +385,7 @@ layui.define(['lay','layer'], function(exports){
// 上传前的回调 - 如果回调函数明确返回 false,则停止上传
if(options.before && (options.before(args) === false)) return;
- // IE兼容处理
+ // IE 兼容处理
if(device.ie){
return device.ie > 9 ? ajaxSend() : iframeSend();
}
@@ -392,37 +401,37 @@ layui.define(['lay','layer'], function(exports){
audio: '音频'
})[options.accept] || '文件';
- //校验文件格式
+ // 校验文件格式
value = value.length === 0
? ((elemFile.value.match(/[^\/\\]+\..+/g)||[]) || '')
: value;
if(value.length === 0) return;
- //根据文件类型校验
+ // 根据文件类型校验
switch(options.accept){
- case 'file': //一般文件
+ case 'file': // 一般文件
layui.each(value, function(i, item){
if(exts && !RegExp('.\\.('+ exts +')$', 'i').test(escape(item))){
return check = true;
}
});
break;
- case 'video': //视频文件
+ case 'video': // 视频文件
layui.each(value, function(i, item){
if(!RegExp('.\\.('+ (exts || 'avi|mp4|wma|rmvb|rm|flash|3gp|flv') +')$', 'i').test(escape(item))){
return check = true;
}
});
break;
- case 'audio': //音频文件
+ case 'audio': // 音频文件
layui.each(value, function(i, item){
if(!RegExp('.\\.('+ (exts || 'mp3|wav|mid') +')$', 'i').test(escape(item))){
return check = true;
}
});
break;
- default: //图片文件
+ default: // 图片文件
layui.each(value, function(i, item){
if(!RegExp('.\\.('+ (exts || 'jpg|png|gif|bmp|jpeg|svg') +')$', 'i').test(escape(item))){
return check = true;
@@ -431,13 +440,13 @@ layui.define(['lay','layer'], function(exports){
break;
}
- //校验失败提示
+ // 校验失败提示
if(check){
- that.msg('选择的'+ typeName +'中包含不支持的格式');
+ that.msg(text['check-error'] || ('选择的'+ typeName +'中包含不支持的格式'));
return elemFile.value = '';
}
- //选择文件的回调
+ // 选择文件的回调
if(type === 'choose' || options.auto){
options.choose && options.choose(args);
if(type === 'choose'){
@@ -445,7 +454,7 @@ layui.define(['lay','layer'], function(exports){
}
}
- //检验文件数量
+ // 检验文件数量
that.fileLength = function(){
var length = 0;
var items = getFiles();
@@ -456,10 +465,12 @@ layui.define(['lay','layer'], function(exports){
}();
if(options.number && that.fileLength > options.number){
- return that.msg(
+ return that.msg(typeof text['limit-number'] === 'function'
+ ? text['limit-number'](options, that.fileLength)
+ : (
'同时最多只能上传: '+ options.number + ' 个文件'
+'
您当前已经选择了: '+ that.fileLength +' 个文件'
- );
+ ));
}
// 检验文件大小
@@ -474,7 +485,9 @@ layui.define(['lay','layer'], function(exports){
limitSize = size;
}
});
- if(limitSize) return that.msg('文件大小不能超过 '+ limitSize);
+ if(limitSize) return that.msg(typeof text['limit-size'] === 'function'
+ ? text['limit-size'](options, limitSize)
+ : '文件大小不能超过 '+ limitSize);
}
send();