最近公司让将以前的上传控件升级成可以一次选择多个文件的控件,目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见百度
http://baike.baidu.com/view/1332553.htm?fr=ala0_1_1。
在使用这个控件批量上传文件时发现中文文件名都是乱码,在网上查了半天,找了几个办法,特总结如下:
第一种:fileName= new String(fileName.getBytes("UTF-8"),"GBK");
用这种方式能解决大部分乱码,但如果文件名中有特殊字符和标点符号有时候会转不过来。
第二种:我使用的是这种办法,测试已经通过
- /**在设置时需要设置一下上传事件
- *upload_start_handler : this.onUploadStart,
- *动态传参数,解决文件名中文乱码问题
- **/
- onUploadStart : function(file) {
- var post_params = this.settings.post_params;
- Ext.apply(post_params,{
- 'fileName':encodeURIComponent(file.name)
- });
- this.setPostParams(post_params);
- }
- //在读取的类中将文件转码即可
- String fName = URLDecoder.decode(fileName, "UTF-8");
第三种:配置web.config配置文件这种方法我没试,不知道行不行。
解决批量上传文件中文名乱码问题

本文详细介绍了在使用SWFUpload控件进行批量文件上传时遇到中文文件名乱码的问题,并提供了三种解决方案:使用UTF-8转码、在上传事件中动态传参、配置web.config文件。解决方案中重点推荐了在设置时设置上传事件并动态传参的方法,通过`encodeURIComponent`函数解决了乱码问题。
1037

被折叠的 条评论
为什么被折叠?



