我们能以MB显示文件大小错误消息吗?有一个选项可以自定义错误消息,但我找不到以MB而不是KB显示大小.
msgSizetooLarge
File “{name}” ({size} KB) exceeds maximum allowed upload size of
{maxSize} KB. Please retry your upload!
解决方法
为了更改验证错误消息,您必须向fileuploaderror事件添加处理程序(可能您必须根据您的需要和设置捕获一些其他错误.对于完整错误支持的事件,请参阅here).然后将msgSizetooLarge选项字符串格式化为我们想要的.我们需要为msgSizetooLarge提供一个带有字符串键名的自定义格式;对于{size},它将是{customSize},对于{maxSize},它将是{customMaxSize}. msgSizetooLarge消息将如下所示:
msgSizetooLarge: 'File "{name}" (<b>{customSize}</b>) exceeds maximum allowed upload size of <b>{customMaxSize}</b>. Please retry your upload!'
要获取文件大小,您将使用传递给fileuploaderror事件的data参数并使用第一个文件大小size = data.files [0] .size.对于maxFileSize,您只需读取元素数据,其中存储了所有fileinputs的数据maxFileSize = $(this).data().fileinput.maxFileSize.现在,我们只创建一个简单的函数将字节转换为正确的格式,或者您甚至可以更改它并强制它始终显示MB格式化值. formatSize函数将是这样的:
formatSize = (s) => { i = Math.floor(Math.log(s) / Math.log(1024)); sizes = ['B','KB','MB','GB','TB','PB','EB','ZB','YB']; out = (s / Math.pow(1024,i)).toFixed(2) * 1 + ' ' + sizes[i]; return out; };
然后我们使用replace函数替换我们的字符串键,格式化文件大小:
msg = msg.replace('{customSize}',formatSize(size)); msg = msg.replace('{customMaxSize}',formatSize(maxFileSize * 1024 /* Convert KB to Bytes */));
结果错误消息将是这样的:
File “Endless Dream.mp3” (2.07 MB) exceeds maximum allowed upload size of 2 MB. Please retry your upload!
最后,我们使用data.id来更改< li>元素错误文本到我们现在拥有的:
$('li[data-file-id="'+data.id+'"]').html(msg);
结果消息:
我的全部工作javascript代码
$("#file-1").fileinput({ uploadUrl: '#',// you must set a valid URL here else you will get an error overwriteInitial: false,maxFileSize: 2048,// 2028 KB == 2 MB msgSizetooLarge: 'File "{name}" (<b>{customSize}</b>) exceeds maximum allowed upload size of <b>{customMaxSize}</b>. Please retry your upload!' }).on('fileuploaderror',function(event,data,msg) { var size = data.files[0].size,maxFileSize = $(this).data().fileinput.maxFileSize,formatSize = (s) => { i = Math.floor(Math.log(s) / Math.log(1024)); sizes = ['B','YB']; out = (s / Math.pow(1024,i)).toFixed(2) * 1 + ' ' + sizes[i]; return out; }; msg = msg.replace('{customSize}',formatSize(size)); msg = msg.replace('{customMaxSize}',formatSize(maxFileSize * 1024 /* Convert KB to Bytes */)); $('li[data-file-id="'+data.id+'"]').html(msg); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。