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了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值