Vincent Thinking

          All about Vincent's work and life

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            34 隨筆 :: 0 文章 :: 183 評論 :: 0 Trackbacks

          為了通用,從頭到尾都是utf-8.

          而webwork中JakartaMultiPartRequest對于多編碼的處理并不如意.

          apache的fileupload對于上傳文件名為中文的需要首先指定HeaderEncoding的編碼.
          而webwork對于MultiPartRequest的request并沒有設(shè)置encoding編碼
          詳見DispatcherUtils.java中 387行

          ???????? if ?(encoding? != ? null ? && ? ! MultiPartRequest.isMultiPart(request))? {
          ????????????
          try ? {
          ????????????????request.setCharacterEncoding(encoding);
          ????????????}
          ? catch ?(Exception?e)? {
          ????????????????LOG.error(
          " Error?setting?character?encoding?to?' " ? + ?encoding? + ? " '?-?ignoring. " ,?e);
          ????????????}

          ????????}

          如果沒有指定HeaderEncoding, 那么默認(rèn)采用request的encoding,如果request也沒有指定則采用系統(tǒng)的編碼.
          這里并沒有指定request的encoding,往往導(dǎo)致上傳文件的名字亂碼.

          自定義一個MultiPartRequest,設(shè)定一下就ok了


          對于同時提交的表單域(form)參數(shù),由于在form中指定的enctype的關(guān)系,并不能直接用request.getParameter()才取, 只能通過FileItem.getString()的方式.這里也是上面的問題, 取的CharacterEncoding是request中的,由于webwork的原因不一致.同樣需要指定一下.

          這樣form和上傳同時提交,參數(shù),附件名都正常了 :)
          posted on 2006-04-25 18:24 Vincent Thinking 閱讀(1391) 評論(2)  編輯  收藏 所屬分類: JAVA

          評論

          # re: webwork 附件上傳中得一些問題 2006-08-08 17:11 黑洞
          "自定義一個MultiPartRequest,設(shè)定一下就ok了"——應(yīng)該怎么定義啊?
          ihiyin@hotmail.com  回復(fù)  更多評論
            

          # re: webwork 附件上傳中得一些問題 2006-08-12 15:16 Vincent Thinking
          ServletFileUpload upload = new ServletFileUpload(fac);
          upload.setHeaderEncoding((String)Configuration.get(WebWorkConstants.WEBWORK_I18N_ENCODING));  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 铁岭市| 滨州市| 通州市| 临清市| 宁都县| 长汀县| 海兴县| 稻城县| 富蕴县| 江源县| 淮阳县| 襄樊市| 闽清县| 宁津县| 靖江市| 平湖市| 五河县| 繁峙县| 长治县| 搜索| 剑阁县| 黔西县| 原阳县| 砀山县| 渭源县| 射洪县| 正蓝旗| 大姚县| 北宁市| 精河县| 蚌埠市| 遵义市| 叶城县| 三明市| 潜江市| 贵州省| 洛川县| 灯塔市| 逊克县| 新干县| 永丰县|