bootstrap中fileinput上传⽂件时,⽂件名中⽂,只显⽰后缀解
决办法
BUG描述:
上传或者导⼊⽂件名为中⽂的⽂件时,只显⽰后缀,数字或字母的⽂件名则正常显⽰。
原因:
bootstrap⽀持国际化,默认fileinput.js中⽀持的是英⽂,所以⽀持数字和字母的⽂件名,中⽂名称则根据正则表达式,替换了。解决⽅案:
⽅案⼀:
到fileinput.js⽂件打开,搜索slugDefault关键字,到下⾯这个⽅法
slugDefault: function (text) {
return isEmpty(text) ? '' : text.split(/(\\|\/)/g).pop().replace(/[^\w\-.\\\/ ]+/g, '');
js中文正则表达式},
替换成:
return isEmpty(text) ? '' : text.substr(text.lastIndexOf("\\") + 1, text.length);
结果:
slugDefault: function (text) {
/*return isEmpty(text) ? '' : text.split(/(\\|\/)/g).pop().replace(/[^\w\-.\\\/ ]+/g, '');*/
return isEmpty(text) ? '' : text.substr(text.lastIndexOf("\\") + 1, text.length);
},
亲测,可以解决。
注意:
虽然可以解决,这种操作,感觉很暴⼒,项⽬不需要国际化⽀持时候,可以这样操作。如果需要国际化时,不建议这样!
⽅案⼆:
引⼊国际化⽂件,然后删除
<input  type="file" name="file" class="file"/>
中的class="file"样式,如下:
<input  type="file" name="file"/>
由于项⽬引⽤的和⽹上搜的国际化⽂件不⼀样, 该情况未成功,这个根据情况⽽定,酌情使⽤。
该情况不适⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。