Browse Source

BI-76381 bi.file支持设置最大上传文件数量

es6
windy 4 years ago
parent
commit
c7d3a88e70
  1. 3
      changelog.md
  2. 1
      src/base/single/editor/editor.multifile.js
  3. 67
      src/base/single/input/file.js

3
changelog.md

@ -1,4 +1,7 @@
# 更新日志
2.0(2020-12)
- bi.file支持限制上传文件数
2.0(2020-11)
- bi.file上传文件errorMsg默认调用国际化
- 修复了文本标签text传递空字符串后显示value值的问题

1
src/base/single/editor/editor.multifile.js

@ -31,6 +31,7 @@ BI.MultifileEditor = BI.inherit(BI.Widget, {
multiple: o.multiple,
accept: o.accept,
maxSize: o.maxSize,
maxLength: o.maxLength,
title: o.title
});
this.file.on(BI.File.EVENT_CHANGE, function () {

67
src/base/single/input/file.js

@ -208,7 +208,7 @@
attachO.attach_type = "image";
}
attachO.filename = handler.file.fileName;
if (handler.maxlength == 1) {
if (handler.maxLength == 1) {
handler.attach_array[0] = attachO;
// handler.attach_array.push(attachO);
} else {
@ -271,7 +271,7 @@
} catch (e) {
attachO.filename = handler.file.fileName;
}
if (handler.maxlength == 1) {
if (handler.maxLength == 1) {
handler.attach_array[0] = attachO;
} else {
handler.attach_array[current] = attachO;
@ -444,7 +444,8 @@
url: "",
multiple: true,
accept: "", // .png,.pdf,image/jpg,image/* 等
maxSize: -1 // 1024 * 1024
maxSize: -1, // 1024 * 1024
maxLength: -1 // 无限制, 与multiple配合使用
});
},
@ -463,7 +464,7 @@
var self = this, o = this.options;
// create the noswfupload.wrap Object
// wrap.maxSize 文件大小限制
// wrap.maxlength 文件个数限制
// wrap.maxLength 文件个数限制
var _wrap = this.wrap = this._wrap(this.element[0], o.maxSize);
// fileType could contain whatever text but filter checks *.{extension}
// if present
@ -545,30 +546,39 @@
var self = this;
event.add(wrap.dom.input, "change", function () {
event.del(wrap.dom.input, "change", arguments.callee);
for (var input = wrap.dom.input.cloneNode(true), i = 0, files = F(wrap.dom.input); i < files.length; i++) {
var item = files.item(i);
var tempFile = item.value || item.name;
var value = item.fileName || (item.fileName = tempFile.split("\\").pop()),
ext = -1 !== value.indexOf(".") ? value.split(".").pop().toLowerCase() : "unknown",
size = item.fileSize || item.size;
var validateFileType = fileTypeValidate(value, wrap.fileType);
if (!validateFileType) {
// 文件类型不支持
BI.Msg.toast(BI.i18nText("BI-Upload_File_Type_Error"), { level: "error" });
self.fireEvent(BI.File.EVENT_ERROR, {
errorType: 0,
file: item
});
} else if (wrap.maxSize !== -1 && size && wrap.maxSize < size) {
// 文件大小不支持
BI.Msg.toast(BI.i18nText("BI-Upload_File_Size_Error"), { level: "error" });
self.fireEvent(BI.File.EVENT_ERROR, {
errorType: 1,
file: item
});
} else {
wrap.files.unshift(item);
// BI.Msg.toast(value);
var input = wrap.dom.input.cloneNode(true);
var files = F(wrap.dom.input);
if (wrap.maxLength !== -1 && wrap.maxLength < files.length) {
BI.Msg.toast(BI.i18nText("BI-Upload_File_Count_Error"), { level: "error" });
self.fireEvent(BI.File.EVENT_ERROR, {
errorType: 2
});
} else {
for (var i = 0; i < files.length; i++) {
var item = files.item(i);
var tempFile = item.value || item.name;
var value = item.fileName || (item.fileName = tempFile.split("\\").pop()),
ext = -1 !== value.indexOf(".") ? value.split(".").pop().toLowerCase() : "unknown",
size = item.fileSize || item.size;
var validateFileType = fileTypeValidate(value, wrap.fileType);
if (!validateFileType) {
// 文件类型不支持
BI.Msg.toast(BI.i18nText("BI-Upload_File_Type_Error"), { level: "error" });
self.fireEvent(BI.File.EVENT_ERROR, {
errorType: 0,
file: item
});
} else if (wrap.maxSize !== -1 && size && wrap.maxSize < size) {
// 文件大小不支持
BI.Msg.toast(BI.i18nText("BI-Upload_File_Size_Error"), { level: "error" });
self.fireEvent(BI.File.EVENT_ERROR, {
errorType: 1,
file: item
});
} else {
wrap.files.unshift(item);
// BI.Msg.toast(value);
}
}
}
wrap.files.length > 0 && self.fireEvent(BI.File.EVENT_CHANGE, {
@ -602,6 +612,7 @@
name: input.name, // name to send for each file ($_FILES[{name}] in the server)
// maxSize is the maximum amount of bytes for each file
maxSize: o.maxSize ? o.maxSize >> 0 : -1,
maxLength: o.maxLength,
files: [], // file list
// remove every file from the noswfupload component

Loading…
Cancel
Save