`

FileUpload 1.0 上传文件 中文文件名乱码

阅读更多

步入2011年末了,可是公司一直都还是使用的旧平台框架.

struts1.1 很老的框架了,有些细小的bug在开发中会遇到

 

现在记录一下struts1.1中自带的fileupload.jar 1.0版本的问题

该jar组件用于实现文件上传,在实际开发中发现,当上传中文文件名的时候,server端会发生中文文件名乱码的问题.刚开始以为是浏览器的问题,但是使用http监听查看报文收发,截取了字节出来查看,发现浏览器端确实是使用page页面指定的编码进行上传文件名的编码的.

 

这就说明是server端的问题了,跟踪平台代码一路调试,从filter一路调试到公司平台的Action实现,发现是在struts的公共上传处理后,文件名发生的乱码,说明不是filter,也不是公司通用Action造成的.

 

由于struts1.1使用了fileupload组件,于是在网上搜寻了一些相关的资料,均得不到正确的指导,很多人都说直接使用getByte("GBK")来处理乱码,但这种写死编码的风格,不是我喜欢的.于是google中文未果的情况下,无奈到apache官网查看buglist,终于找到了下面的bug:

 

https://issues.apache.org/jira/browse/FILEUPLOAD-13

 

根据文中所说,1.0版本确实是按照平台自己的编码去进行解码的,而不是使用request中指定的编码,此bug在1.1版本中得到了解决,于是下载了1.1.1版本的fileupload,试了一下,终于搞定中文乱码问题了.

 

解决问题后不禁一番感慨,确实公司的平台太落后了,还用着10年前的struts,公司一直依附的银行系统也是一直指定ie6浏览器作为内部系统标准浏览器.有时候看到html5和css3,除了流口水还是流口水...

 

看来要找个机会改造下公司的平台了,最起码把项目组所用到的平台先升级了,太out了

分享到:
评论
1 楼 尹华童鞋 2014-05-05  
亲 本来我狠狠高兴了一下 因为这个问题太相似了 可结果还是让我有拍死人的冲动 要不你给看看 2719648631

相关推荐

Global site tag (gtag.js) - Google Analytics