解决tomcat里中文文件无法正常下载

故障原因
-----------------------------------------------------
在tomcat5.0中,当请求一个中文的文件名(软件下载)时,会提示找不到文件路径,出现此类问题,最根本的问题就是文件名(字符串)编码不同,而导致了资源无法找到。

 


解决办法 一
-----------------------------------------------------
更改tomcat全局配置,并在页面中对中文文件名进行编码

1、修改 $tomcat$/conf/server.xml ,找到下面的配置段
<Connector port="8080" maxThreads="150" minSpareThreads="25" ....>
找到后,查看是否存在配置属性 URIEncoding,如果有,则修改其属性值为 URIEncoding='GBK',没有则添加这一属性值对。


2、在需要进行中文文件下载的地方调用 cn.com.dekn.cms.util.Convert 类进行编码转换,例如:
<a href="<%=cn.com.dekn.cms.util.Convert.convertURLStrToGBK(file_res_info.getRESOURCE_SAVE_PATH())%>" target="_blank"><%=file_res_info.getNAME()%></a>


3、重新启动tomcat,再次尝试下载中文文件(不要直接在URL中直接输入中文,而是通过第2步那个链接进入),发现可以正常下载中文文件名


不良影响: 对cms4j现有中文URL无任何影响,但是这种方式,在下载中文保存对话框中,中文文件名成了乱码,仅此而已,不影响下载与使用。

 

 

解决办法 二
-----------------------------------------------------

1、仅按照方法一中第1步,不同的是,这里把 URIEncoding='GBK' 改为 URIEncoding='UTF-8' ,保存后,重启tomcat即可实现中文文件名的下载


不良影响: 对CMS4J现有中文URL参数的页面有影响,会导致接收中文出现乱码,所以对这些页面要进行编码转换。

 

 


*******************************************************************
*  JAVA / JSP 版网站内容管理系统 (CMS For Java)
*  感谢您对CMS4J的支持
www.cms4j.com
*
*  CMS4J 版权所有  2004-2006
*  软件作者: Dekn
*  QQ:4626636
*  MSN / Mail: cms4j@hotmail.com
*******************************************************************

posted on 2006-10-18 09:23  dekn  阅读(2662)  评论(0编辑  收藏  举报

导航