首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

解决swfupload上传控件文件名中文乱码有关问题 三种方法 flash及最新版本11.8.800.168

2013-09-13 
解决swfupload上传控件文件名中文乱码问题 三种方法flash及最新版本11.8.800.168目前比较流行的是使用SWFU

解决swfupload上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168
目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见官网http://demo.swfupload.org/v220/index.htm

     在使用这个控件批量上传文件时发现中文文件名都是乱码,在网上查了半天,找了几个办法,特总结如下:

     第一种:fileName= new String(fileName.getBytes("UTF-8"),"GBK");

     用这种方式能解决大部分乱码,但如果文件名中有特殊字符和标点符号有时候会转不过来。

     第二种:我使用的是这种办法,测试已经通过
 

view plaincopy to clipboard
  1. /**在设置时需要设置一下上传事件 
  2.   *upload_start_handler : this.onUploadStart, 
  3.   *动态传参数,解决文件名中文乱码问题 
  4. **/  
  5. onUploadStart : function(file) {  
  6.   var post_params = this.settings.post_params;  
  7.   Ext.apply(post_params,{  
  8.          'fileName':encodeURIComponent(file.name)  
  9.   });  
  10.   this.setPostParams(post_params);  
  11. }  
  12. //在读取的类中将文件转码即可   
  13. String fName = URLDecoder.decode(fileName, "UTF-8");  
[c-sharp] view plaincopy
  1. /**在设置时需要设置一下上传事件 
  2.   *upload_start_handler : this.onUploadStart, 
  3.   *动态传参数,解决文件名中文乱码问题 
  4. **/  
  5. onUploadStart : function(file) {  
  6.   var post_params = this.settings.post_params;  
  7.   Ext.apply(post_params,{  
  8.          'fileName':encodeURIComponent(file.name)  
  9.   });  
  10.   this.setPostParams(post_params);  
  11. }  
  12. //在读取的类中将文件转码即可  
  13. String fName = URLDecoder.decode(fileName, "UTF-8");  

  第三种:配置web.config配置文件这种方法

swfupload是按照utf-8来编码的,而中文网站一般使用的编码是gb2312,你需要在使用sufupload的程序文件目录下重新定义xml.comfig文件,如下:
<configuration>    <appSettings/>    <connectionStrings/>    <system.web>      <globalization requestEncoding="utf-8"/>    </system.web></configuration>

现在的flash 最新版本,11.8.800.168 和 11.9 等有 bug,如果升级后,在使用 swfuploader、uploadify 等文件上传控件时,如果文件名是中文,就会出现中文乱码。大家可以知道到 swfupload 和 uploadify官方网站的 demo 里测试。

如果已经不小心升级了,可以通过以下办法解决:

  1. 到这来下载反安装文件,并卸载掉当前版本的 flash (通过别的办法卸载会无法安装旧版本的 flash 控件):http://download.macromedia.com/get/flashplayer/current/support/uninstall_flash_player.exe
  2. 到这来下载 相对旧一点的版本,并安装(也可以去别的地方下载):http://file.myfiles.com.cn/Photo/FlashPlayer_v118800129X.zip

SWFUpload 2.5.0版 官方说明文档 中文翻译版



1楼qiaqia609昨天 19:46
flash 最新版本11.8.800.168 导致swfupload上传中文乱码,确认问题了,卸载新版本11.8.800.168,安装装老版本11.7.700.169,问题解决。n注意安装老版本前需要清理注册表,否则无法安装。nHKEY_CURRENT_USER\Software\Macromedia\FlashPlayernHKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayernHKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX

热点排行