FCKeditor解决上传中文名的文件乱码

在使用FCKeditor上传文件时,当文件名为中文时,上传后的文件名为乱码,解决方法如下:

1. 修改fckeditor-java-core-2.4.jar源码,在源码中找到在web.xml文件中配置的 net.fckeditor.connector.ConnectorServlet类,在 doPost方法中,添加 upload.setHeaderEncoding("UTF-8") ,修改如下:
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
/**
 * 解决上传中文名的文件会出现乱码问题
 * 添加 by songsp 2009-1-8 15:54:09
 */
upload.setHeaderEncoding("UTF-8");
/**
 * end
 */
try {
     List<FileItem> items = upload.parseRequest(request);
     // We upload only one file at the same time
     FileItem uplFile = items.get(0);
     //...


修改好后,重新打包。
或者,自己新建一个类,复制net.fckeditor.connector.ConnectorServlet类中代码,在其基础上,添加以上的代码,再在web.xml中的Connector配置成自定义的Connector类即可。
  <servlet>
  <servlet-name>Connector</servlet-name>
  <servlet-class>org.sp.util.FCKeditorConnectorServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>


2. 按以上完成后,中文命名的文件上传上去后将不会出现乱码,但引用时,会找不到该文件,如引用图片时,显示为叉。
解决方法:修改tomcat中的server.xml文件,在 <Connector> 标签中添加 URIEncoding="utf-8" 属性,如下:
<Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" 
               URIEncoding="utf-8"/>


你可能感兴趣的:(tomcat,Web,.net,xml,fckeditor)