目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见官网http://demo.swfupload.org/v220/index.htm

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

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

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

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

  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 plain
copy

 

  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上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168的更多相关文章

  1. 淘宝(阿里百川)手机客户端开发日记第十四篇 jsp提交含有上传控件表单乱码问题

    今天我来总结昨天开发的一个简单的jsp web 应用程序时,在做一个调教表单,从servlet端获取数据,这个表单里含有上传文件控件.如果我们在测试的时候,获取数据的是乱码,这时,大家可以先去掉上传控 ...

  2. 【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法

    众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的.比如下面的情况: 解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示.2.使用i ...

  3. swfupload 上传控件的配置

    第一:下载swfupload控件,点击下载: 第二,解压缩后,在项目中添加这四个文件,如图: 然后,在你的js文件中添加这段代码: /** * *定义swfupload配置文件对象 **/ var s ...

  4. 解决Uploadify上传控件加载导致的GET 404 Not Found问题

    今天在项目发用到Uploadify上传, 发现在打开页面时会有一多余的请求,由于路由没有设置这个,导致404错误,能搜索查到以下解决的方法 <Uploadify v3 bug. Unecessa ...

  5. QT 窗体控件的透明度设置(三种方法)

    整个窗体 当设置QT的窗体(QMainWindow, QDialog)时,直接用 targetForm->setWindowOpacity()   函数即可实现,效果为窗体及窗体内所有控件都透明 ...

  6. 文件上传控件bootstrap-fileinput中文设置没有效果的情况

    1.引入zh.js顺序错误 zh.js需放到fileinput.js下面 2. 组件创建语法错误 (class=“file”) 如果你使用js初始化fileinput组件,那么在html元素中应删除 ...

  7. 解决jmeter中文乱码的三种方法

    1.在Jmeter中的Http请求中,在内容编码后填入“utf-8”. 2.在本地文件存储Jmeter的bin目录下,修改jmeter.properties文件. (1)用记事本打开jmeter.pr ...

  8. pictureBox控件获得图片路径的三种方法及自适应大小属性

    1.绝对路径: this.pictureBox2.Image=Image.FromFile("D:\\001.jpg"); 2.相对路径: Application.StartupP ...

  9. Extjs3 + swfUpload实现多文件上传控件

    要在ExrtJS框架实现选择多文件上传,FileUploadField已经无法满足需求,所以采用了 swfUpload上传控件,上传窗口如下: 多选文件进行上传(其实是每个文件异步上传),可以中途停止 ...

随机推荐

  1. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

  2. Xamarin.Android开发实践(五)

    原文:Xamarin.Android开发实践(五) 一.服务的生命周期 服务与活动一样,在它的整个生命周期中存在着一些事件,下图可以很好解释整个过程以及涉及到的方法: 在真实的使用中,Service来 ...

  3. 腾讯QQ是用什么语言开发的(转)

    腾讯QQ的部分COM组件用的VC6,用exescope看其中几个dll的依赖,依赖于MFC42.dll,MSVCRT.dll,MSVCP60.dll都说明是VC6写的. 还有一部分用的VS2005,包 ...

  4. 实用推荐:12款Linux系统恢复工具

    12款Linux系统恢复工具 电脑死机,系统崩溃,总会给电脑使用者带来一定的损失.你是否不小心删除你的纪念图片?安装新系统时候,擦除了分区表?无法读取旧CD里面的数据?别急嘛-我们将会给您推荐一些免费 ...

  5. Android显示GIF动画完整示例(二)

    MainActivity如下: package cc.testgif2; import android.os.Bundle; import android.app.Activity; /** * De ...

  6. VC问题 IntelliSense:“没有可用的附加信息”,[请参见“C++项目 IntelliSense 疑难解答”,获得进一步的帮助]

    当出现以上的问题时,若按照网上所说的解决方法: 1.安装VA(Visual_AssistX) 2.安装Microsoft SQL Server Compact 3.5 3.更改设置“工具-选项-文本编 ...

  7. 浅析C++基础知识

    近期想对C++的面试题目进行一下更加详细的整理.事实上认真思考一下C++程序猿的面试,我们能够发现对程序猿的能力的考察总是万变不离当中,这些基础知识主要分为五部分:一. C/C++基础知识 二. C/ ...

  8. SPI通信

    SPI是由Motorola公司提出的一种同步串行外围接口:它在速度要求不高,低功耗,需要保存少量参数的智能化传感系统中得到了广泛应用: SPI是一个全双工的同步串行接口,在数据传输过程中,总线上只能是 ...

  9. iOS 开发设计常用软件及工具整理

    1, xCode 2, AppCode 3, Skech 原型设计软件 4, Hype 动画设计工具 5, fontawsome 免费图表 6, Prepo icon, images.catlog 生 ...

  10. c语言求最大公约数和最小公倍数

    求最大公约数和最小公倍数 假设有两个数a和b,求a,b的最大公约数和最小公倍数实际上是一个问题,得出这两个数的最大公约数就可以算出它们的最小公倍数. 最小公倍数的公式是 a*b/m m为最大公约数 因 ...