jQuery Uploadify上传插件使用中的问题 中文字符文件名转英文


最近项目中发现一个问题,由于后台对用户上传的文件名的处理有局限,不允许用户上传中文名字的文件,或者需要对用户上传的中文文件名称进行处理,然后再传给后台保存。

如图所示,规定应用文件的包名为后缀.apk,且对中文文件名进行处理成英文或数字,满足后台的要求。

这里使用的是jQuery Uploadify上传插件,后缀名的限定可以使用插件规定的方式,很容易解决。

使用jquery解决方式是

$(document).ready(function(){$('#file_upload8').uploadify({'uploader':'/static/flash/uploadify.swf','script':'/upload/yiwi=package-<{$randimagestr}>','buttonImg': '/static/images/uoloadselectfile.png', 'cancelImg':'/static/images/cancel.png','fileExt':'*.apk','fileDesc': '仅支持apk','sizeLimit':100000000,'folder':'/data/apkdir','fileDataName':'package','auto':true,onComplete: function (event, queueID, fileObj, response, data){$('#package').val(fileObj.name);$('#packagesize').val(fileObj.size);$('#packagepath').val(response)}});});

个人觉得这里最方便的方法是采用正则对文件名进行匹配,如果是包含中文字符,则进行替换,考虑到文件名的唯一性和实现的复杂性,不建议采用汉字转拼音方式,这里采用时间戳替换,精确到毫秒:str.replace(/.*[\u4e00-\u9fa5]+.*$/,new Date().getTime())。对onComplete函数的 $('#package').val(fileObj.name);修改为如下代码:

$('#package').val(fileObj.name.replace(/.*[\u4e00-\u9fa5]+.*$/,new Date().getTime()+'.apk'));

测试后,可用。问题解决。

此外,js正则判断字符串是否含有汉字或英文的方法

function isChn(str){
   var reg = /^[\u4E00-\u9FA5]+$/; //字符串全是汉字
   var reg = /.*[\u4e00-\u9fa5]+.*$/; //字符串中含有汉字
   var reg = /^[A-Za-z]+$/; //字符串是英文字母
   if(reg.test(str)){
    return true;
   }
   return false; //否则返回false
  }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值