Fckeditor 文件名乱码解决一法

来源:互联网 发布:javascript有类吗 编辑:程序博客网 时间:2024/05/21 21:45
<script type="text/javascript"><!--google_ad_client = "pub-9528830580198364";/* 文章顶部广告(方框)300&#42;250 */google_ad_slot = "0068799835";google_ad_width = 300;google_ad_height = 250;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>Fckeditor的乱码太经典了,这里说以下Fckeditor提交文件后,浏览器浏览时文件名是乱码,没法识别中文文件名的解决方法
其实最理想的方法是让服务器Tomcat识别中文文件名,这里我的尝试没有成功
 
 我是把上传的文件名改成以数字为名字的文件,文件命名为随即数字,以时间为种子

connectorServlet.java
部分代码
  1. if(!commandStr.equals("FileUpload"))
  2.             retVal="203";
  3.         else {
  4.             DiskFileUpload upload = new DiskFileUpload();
  5.             upload.setHeaderEncoding("utf-8");
  6.             try {
  7.                 List items = upload.parseRequest(request);
  8.                 
  9.                 Map fields=new HashMap();
  10.                 
  11.                 Iterator iter = items.iterator();
  12.                 while (iter.hasNext()) {
  13.                     FileItem item = (FileItem) iter.next();
  14.                     if (item.isFormField())
  15.                         fields.put(item.getFieldName(),item.getString());
  16.                     else
  17.                         fields.put(item.getFieldName(),item);
  18.                 }
  19.                 FileItem uplFile=(FileItem)fields.get("NewFile");
  20.                 String fileNameLong=uplFile.getName();
  21.                 fileNameLong=fileNameLong.replace('//','/');
  22.                 String[] pathParts=fileNameLong.split("/");
  23.                 String fileName=pathParts[pathParts.length-1];
  24.                 
  25.                 
  26.             //  String nameWithoutExt=getNameWithoutExtension(fileName);
  27.                 String ext=getExtension(fileName);
  28.                 //随机数命名文件
  29.                 Date date=new Date();
  30.                 Random rand=new Random(date.getTime());
  31.                 String tempFileName=rand.nextInt()+"."+ext;
  32.                 File pathToSave=new File(currentDirPath,tempFileName);
  33.                 
  34.                 
  35.                 int counter=1;
  36.                 while(pathToSave.exists()){
  37.                     newName=tempFileName+"("+counter+")"+"."+ext;
  38.                     retVal="201";
  39.                     pathToSave=new File(currentDirPath,newName);
  40.                     counter++;
  41.                     }
  42.                 uplFile.write(pathToSave);
  43.             }catch (Exception ex) {
  44.                 retVal="203";
  45.             }
  46.             
  47.         }
SimpleUploaderServlet.java
  1.     if(enabled) {       
  2.             DiskFileUpload upload = new DiskFileUpload();
  3.             upload.setHeaderEncoding("utf-8");
  4.             try {
  5.                 List items = upload.parseRequest(request);
  6.                 
  7.                 Map fields=new HashMap();
  8.                 
  9.                 Iterator iter = items.iterator();
  10.                 while (iter.hasNext()) {
  11.                     FileItem item = (FileItem) iter.next();
  12.                     if (item.isFormField())
  13.                         fields.put(item.getFieldName(),item.getString());
  14.                     else
  15.                         fields.put(item.getFieldName(),item);
  16.                 }
  17.                 FileItem uplFile=(FileItem)fields.get("NewFile");
  18.                 String fileNameLong=uplFile.getName();
  19.                 fileNameLong=fileNameLong.replace('//','/');
  20.                 String[] pathParts=fileNameLong.split("/");
  21.                 String fileName=pathParts[pathParts.length-1];
  22.                 
  23.             //  String nameWithoutExt=getNameWithoutExtension(fileName);
  24.                 String ext=getExtension(fileName);
  25.                 //随机数命名文件
  26.                 Date date=new Date();
  27.                 Random rand=new Random(date.getTime());
  28.                 String tempFileName=rand.nextInt()+"."+ext;
  29.                 
  30.                 File pathToSave=new File(currentDirPath,tempFileName);
  31.                 fileUrl=currentPath+"/"+tempFileName;
  32.                 
  33.                 
  34.                 if(extIsAllowed(typeStr,ext)) {
  35.                     int counter=1;
  36.                     while(pathToSave.exists()){
  37.                         newName=tempFileName+"("+counter+")"+"."+ext;
  38.                         fileUrl=currentPath+"/"+newName;
  39.                         retVal="201";
  40.                         pathToSave=new File(currentDirPath,newName);
  41.                         counter++;
  42.                         }
  43.                     uplFile.write(pathToSave);
  44.                 }
  45.                 else {
  46.                     retVal="202";
  47.                     errorMessage="";
  48.                     if (debug) System.out.println("Invalid file type: " + ext); 
  49.                 }
  50.             }catch (Exception ex) {
  51.                 if (debug) ex.printStackTrace();
  52.                 retVal="203";
  53.             }
  54.         }
  55.         else {
  56.             retVal="1";
  57.             errorMessage="This file uploader is disabled. Please check the WEB-INF/web.xml file";
  58.         }

原创粉丝点击