最近在做一个文件上传的功能,使用的是ajaxFileUpload作为前台上传功能,实际使用中发现问题有2个

1、file组件的change事件只能触发一次。

2、上传的中文名乱码

关于1:file组件的change事件触发一次是因为ajaxFileUpload在复制页面的file组件时候clone副本只克隆了dom并未clone事件导致被clone元素的事件只有第一次会发生变化。

在ajaxFileUpload的源代码中将 var newElement = jQuery(oldElement).clone(); 改动为 var newElement = jQuery(oldElement).clone(true); 就能够继续触发change事件了。

关于2:上传中文文件名在后台会读取到乱码的原因是ajaxFileUpload是使用内建iframe和form组件来完成异步刷新的,断点发现异步使用的form外部context的编码为GBK

但是我工程和request的编码都为UTF-8,这就导致了编码不一致而出现乱码,找到原因就在ajaxFileUpload的源码中,内建的form表单提交之前设置下外部的编码为UTF-8就能解决问题具体编码如下

var form = jQuery('#' +formId);
jQuery(form).attr('action', s.url);
jQuery(form).attr('method', 'POST');
jQuery(form).attr('target', frameId);if(form.encoding){jQuery(form).attr('encoding', 'multipart/form-data');
}else{    jQuery(form).attr('enctype', 'multipart/form-data');
}/*内建的dom默认编码方式为GBK需要改变为UTF-8才能使后台接收到的文件名不乱码*/form.context.charset= "UTF-8";
jQuery(form).submit();

这样就能解决后台接受文件名乱码的问题了。

2015年7月16日18:24:24 编辑一下 原来之前的乱码 是因为spring里面freemarker的配置有问题导致的 并不需要改动js的源代码。。。。

将下面的配置GBK改为UTF-8即可

转载于:https://www.cnblogs.com/entize/p/4633229.html

springMVC+ajaxFileUpload中文名乱码的问题相关推荐

  1. 关于导出文件中文名乱码问题,response.setHeader(),postman测试有误,直接用浏览器测试

    问题描述 根据项目需求,需要导出excel文件,文件名包含中文字符,使用postman测试下载,导出的文件名始终不对. 解决问题 话不多说,下面是我解决中文名乱码的设置 response.setCon ...

  2. SpringMVC解决中文乱码问题

    标题:SpringMVC解决中文乱码问题 当我们在使用SpringMVC时也许会碰到前端提交的数据或者数据库中取出来的数据变成乱码,下面提供几种方式来解决. 乱码是怎么产生的 我们自定义一个form表 ...

  3. springmvc字符 中文乱码问题

    springmvc字符 中文乱码问题 1.字符过滤器 输入中文测试,发现乱码 以前乱码问题通过过滤器解决 , 而SpringMVC给我们提供了一个过滤器 , 可以在web.xml中配置,修改了xml文 ...

  4. SpringMVC @RequestParam参数乱码的问题

    在用SpringMVC的@RequestParam接受中文参数的时候,老是出现乱码的问题 修改web.xml <filter> <filter-name>encoding-fi ...

  5. SpringMVC请求参数乱码问题

    post 请求方式: 在 web.xml 中配置一个过滤器 <!-- 配置 springMVC 编码过滤器 --><filter><filter-name>Char ...

  6. springMVC 返回json乱码问题

    多次遇见过这个问题,springMVC下返回给前端的json字符串,中文总是乱码,每次都要去翻一下之前的代码来看解决办法,有必要做个笔记记一下这个问题了. 解决方法: 在方法注解中加入如下: @Req ...

  7. java的excel模板下载(解决中文名乱码问题)

    业务场景:  项目中发现如果供下载的模板直接放在vue前端,而用nginx转发时直接报nginx error,原因可能是无法解析中文名. 那作为后端开发,解决方法之一是直接提供接口,通过流输出模板,以 ...

  8. Jmeter解决上传附件中文名乱码问题

    1.问题描述 在编写jmeter接口脚本时,上传的附件名称,如果有中文名,附件名称会显示乱码.因为是国外开源代码嘛,对中文有时确实不太友好.我尝试了很多方法都失败了,比如说: 买了c**n会员,下载尝 ...

  9. 文件下载中文名乱码问题

    最近实现一个从服务器端下载文件的功能,发现下载下来的文件只要是中文名就乱码,觉得这应该是个编码问题,比较容易解决,结果试了好几种方法都不行,后来google了一个老外的帖子给解决了.据他测试在(IE8 ...

最新文章

  1. html获取子节点数量,Selenium-webdriver在JavaScript中获取子元素数
  2. VC++ 视图类基本编程
  3. 停止FMS3.5的Apache服务
  4. easyui蛋疼之二 tabs与accordion
  5. Python的第三方库pandas
  6. [swustoj 1091] 土豪我们做朋友吧
  7. Spring Boot 你为什么这么耗内存?
  8. 【企业架构师】12 项企业架构师认证
  9. Kafka Broker 总体工作流程
  10. ESP8266连接网络,获取网络天气api
  11. Deepest Root(dfs深度优先遍历)
  12. 计算机专硕毕业论文写什么,最新硕士毕业论文进度安排怎么写
  13. [转]体育运动比赛英语
  14. ES性能优化之查询优化笔记(一)
  15. 杂谈——正则表达式:去除所有括号以及括号中的内容
  16. MySQL调优系列:如何正确的使用MySQL索引
  17. CSS简单入门(一)
  18. WinRAR如何保护压缩包的文件不被修改
  19. 判断输入是否同时为5和7的倍数
  20. 使用类共享提高性能,探索 IBM JRE 中最新的类共享特性

热门文章

  1. 抄袭事件果然是机器人程序所为
  2. 可以直视烤箱里面的食物吗?
  3. Idea导入maven项目不自动识别pom.xml
  4. UBuntu20.04下安装Matlab2015B
  5. 修饰符在python函数中的用法详细解释
  6. 5.11 加权Gram-Schmidt 分解
  7. 2.4 矩阵乘以矩阵定义
  8. totolink 异地组网
  9. Java整合Spring发送邮件
  10. SAS,SATA普及文档