欢迎您,零度科技专业海外服务器租用
公司电话: 24小时电话: 

当前位置:首页>网站建设教程>javascript教程>jquery教程

目录导航

uploadify中文文件名乱码的解决方法

韩国高防服务器 发布于 2014-03-14  

jquery教程

Uploadify是个很好的上传文件组件,但用它来上传带有中文名字的文件时,乱码一个不小心就蹦了出来,最新版本Uploadify v3.2 在用的时候,我页面是GBK编码,想到后台接收的时候肯定会乱码,开始用new String(fileName.getBytes("GBK"),"utf-8");来进行转码(后台用java写的),开始我测试上传了几个中文名称的文件,很正常,但是客户那边用了后,反应文件上传了找不到,KB的开始调试了,把客户的文件拿过来做测试,妈了个咪了的居然出现乱码了,于是各种搜索,各种调试,没有见效,搜索结果里面没有找到新版本出现这一问题的解决办法,好吧,自己看看源码,或许有解决办法,想到可以给后台传参数,那为什么不能再选中文件的时候把文件名经过js的encodeURI方法进行编码后台再来接收,也就是通过定义uploadify的onSelecct(file)方法来得到文件名,因为onSelecct方法的file参数可以通过file.name来得到文件名,我把这个文件名进行编码后传给后台,后台通过 URLDecoder.decode(fileName, "UTF-8");来解码,应该是可以正常显示的,怎么把文件名传到后台去是个问题,看了下源码,里面看到有个addPostParam的方法,大喜,最后我在onSelecct(file)方法里面写上 this.addPostParam("file_name",encodeURI(file.name));后台调试一看,果然可以得到,进行解码后得到正常文件名,OK,问题解决,
附上完整代码:
$('#file_upload').uploadify({
 'formData'     : {
    'file_type' : "examples"
 },
 'swf'      : ‘jsupload/uploadify.swf'",
 'uploader' : "uploadfile.htm",
 'buttonText' : "案例上传",
 'width' : "80",
 'height' : "25",
 'sizeLimit' : "102400",
 'onSelect' : function(file) {  
        this.addPostParam("file_name",encodeURI(file.name));//改变文件名的编码
    },
 'onUploadSuccess' : function(file, data, response) {
       $('.examview').html(data);
  }
});

零度科技原文链接:http://www.ldisp.com/a/jquery/2014/2691.shtml

上一篇:无需插件实现 jQuery 平滑滚动
下一篇:uploadify 属性(参数)中文说明

 
了解零度?

零度科技主营全球服务器租用,如果您有服务器租用需求请联系

海外服务器租用

推荐香港、美国、韩国。提供站群服务器、高防服务器租用

海外特价服务器

关注零度特价服务器频道,了解全球特价服务器。

0

业务咨询

    技术服务

      特价活动
        全站搜索
        热门搜索:
        会员
        0通知
        客服
        0特价
        搜索
        TOP
        香港高防服务器,远程桌面,韩国服务器,nginx,反向代理