bootstrap中fileinput上传文件时,文件名中文,只显示后缀解决办法

BUG描述:  

 上传或者导入文件名为中文的文件时,只显示后缀,数字或字母的文件名则正常显示。

原因: 

bootstrap支持国际化,默认fileinput.js中支持的是英文,所以支持数字和字母的文件名,中文名称则根据正则表达式,替换了。

解决方案:

方案一:

找到fileinput.js文件打开,搜索slugDefault关键字,找到下面这个方法

slugDefault: function (text) {
   return isEmpty(text) ? '' : text.split(/(\\|\/)/g).pop().replace(/[^\w\-.\\\/ ]+/g, '');
},

替换成: 

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"/>

由于项目引用的和网上搜的国际化文件不一样, 该情况未成功,这个根据情况而定,酌情使用。

该情况不适用。 

 

 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值