<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 2, comments - 27, trackbacks - 0, articles - 60
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    搞定FCKeditor2.6.4上傳中文圖片的問題

    Posted on 2009-06-03 14:41 ZhouFeng 閱讀(1744) 評論(0)  編輯  收藏 所屬分類: 原創(chuàng)CKEditor
    昨天配置好了FCKeditor,可以上傳圖片和文件了,可有一個(gè)問題還沒有解決,那就是上傳中文圖片的時(shí)候會出現(xiàn)亂碼,我的工程里用的編碼都是UTF-8的,在網(wǎng)上找了好些資料,都搞不定,最后下載了fckeditor-java-2.4.1-src.zip(在http://www.fckeditor.net/download上也有下載).解壓縮之后,把源文件部署到工程里,可啟動老是報(bào)錯,不知道是啥回事兒,后來換成了手動的,操作如下
    找到源文件中的 net.fckeditor.connector.ConnectorServlet.java,將其中的部分代碼改掉,我們先搞定圖片中文問題,需要做如下修改,大概在240多行的位置
    String newFilename = null;
    FileItemFactory factory 
    = new DiskFileItemFactory();
    ServletFileUpload upload 
    = new ServletFileUpload(factory);
    在其后添加一行,指定編碼為UTF-8的格式,如下
    String newFilename = null;
    FileItemFactory factory 
    = new DiskFileItemFactory();
    ServletFileUpload upload 
    = new ServletFileUpload(factory);
    upload.setHeaderEncoding(
    "UTF-8");
    代碼是改掉了,可怎么部署到應(yīng)用里面呢,前面有說到,直接將java源文件放在工程里編譯啟動里會報(bào)錯,不知道是我哪里沒弄好還是怎么回事,反正也沒去折騰了,改用土辦法
    解壓fckeditor-java-core-2.4.1.jar里面的class放在WEB-INF/classes下,然后手工將新生成的ConnectorServlet.class文件替換掉 WEB-INF/classes/net/fckeditor/connector/ConnectorServlet.class ,再啟動服務(wù)器,如果沒有報(bào)錯的話,中文圖片的上傳問題就能搞定了

    今天為了解決這個(gè)問題查了一天的資料,也順便看了很多文檔,好像是FCKeditor2.4之后可以配置上傳文件自動重命名的地方,我只看到一篇文檔上提到過一次,在官方網(wǎng)站上也沒有找到相關(guān)的說明,也就不去找什么配置了,反正源代碼已經(jīng)改動過了,不如把重命名也一起改了,找到net.fckeditor.connector.ConnectorServlet.java大概250行左右
    // We upload only one file at the same time
    FileItem uplFile = items.get(0);
    String rawName 
    = UtilsFile.sanitizeFileName(uplFile.getName());
    String filename 
    = FilenameUtils.getName(rawName);
    String baseName 
    = FilenameUtils.removeExtension(filename);
    String extension 
    = FilenameUtils.getExtension(filename);
    將上面的代碼改為
    // We upload only one file at the same time
    FileItem uplFile = items.get(0);
    String rawName 
    = UtilsFile.sanitizeFileName(uplFile.getName());

    String randTimer 
    = String.valueOf(Calendar.getInstance().getTimeInMillis());
    String randVal 
    = String.valueOf(Math.abs((new Random()).nextInt()));
                        
    String filename 
    = FilenameUtils.getName(rawName);
    String baseName 
    = randTimer + randVal;
    String extension 
    = FilenameUtils.getExtension(filename);
    filename 
    = baseName.concat(".").concat(extension);
    即可,此處我是用時(shí)間的毫秒串再加上一個(gè)隨機(jī)數(shù)串構(gòu)成的新文件名,當(dāng)然也可以改成你自己喜歡的格式,如將毫秒改成日期時(shí)間字串,則只需修改
    String randTimer = (new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date());
    改好了之后,重新生成class文件,按照上面的做法部署到應(yīng)用中去

    為了方便使用,可以把修改后的class文件重新做成jar包,將WEB-INF/classes下的net和org目錄拷貝到一個(gè)新的空目錄中,然后在命令提示符下轉(zhuǎn)到該目錄,用如下命令可以生成新的jar包
    jar -cvf fckeditor-java-2.4.1-rename.jar *.*
    此處為生成一個(gè)fckeditor-java-2.4.1-rename.jar,當(dāng)然,名字可以自己定義

    上面的做法可能不是很先進(jìn),在Eclipse里也有打包jar的操作,也許更新一個(gè)java源文件不會是這么麻煩,但總算這樣是搞定了,記錄在這里先
    主站蜘蛛池模板: 免费成人在线视频观看| 午夜性色一区二区三区免费不卡视频 | 国产成人亚洲影院在线观看| 久热免费在线视频| 亚洲欧美第一成人网站7777 | 啦啦啦在线免费视频| 中文字幕看片在线a免费| 亚洲中文字幕人成乱码 | 亚洲专区中文字幕| 亚洲伊人成无码综合网 | 亚洲国产精品久久久久秋霞小| 超清首页国产亚洲丝袜| 中文字幕乱码免费视频| 一本久久A久久免费精品不卡| 亚洲国产福利精品一区二区| 亚洲天堂中文字幕在线| 成人毛片免费视频| 中文在线观看免费网站| 国产亚洲欧美在线观看| 亚洲春色另类小说| 亚洲色无码一区二区三区| 好男人看视频免费2019中文| 一区二区三区观看免费中文视频在线播放 | 日韩成人在线免费视频| 91高清免费国产自产拍2021| 成人久久久观看免费毛片| 国产 亚洲 中文在线 字幕| 亚洲va在线va天堂va888www| 亚洲国产成人久久综合区| 女人被男人躁的女爽免费视频| 十八禁无码免费网站| 一个人看的www在线免费视频| 亚洲欧好州第一的日产suv| 久久久久无码精品亚洲日韩| 亚洲天堂中文字幕在线| 免费国产a国产片高清| 西西大胆无码视频免费| 久视频精品免费观看99| 一区二区三区观看免费中文视频在线播放 | 亚洲福利精品电影在线观看| 高清国语自产拍免费视频国产|