jfy3d(劍事)BLOG

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            37 隨筆 :: 0 文章 :: 363 評論 :: 0 Trackbacks

          webwork里上傳文件比較方便,幾行代碼就可以完成。
          只是有個小問題,就是當form里的file控件沒有選文件的時提交action
          就會出現異常,通常很多應用中不一定非要帶文件上傳的,這個應該
          算webwork一個bug吧。

          從報錯的地方可以查出是在fileupload攔截器中
          String[] fileName = multiWrapper.getFileNames(inputName);
          這一行開始中斷掉的
          就是multiWrapper.getFileNames(inputName);中出現空指針錯誤

          如果webwork.properties中配置的是pell上傳包
          需要找到PellMultiPartRequest這個類的以下方法
          //--------------------------------------------------------------------------------------
          public String[] getFileNames(String fieldName) {
                        // TODO - not sure about this - is this the filename of the actual file or
                        // TODO - the uploaded filename as provided by the browser?
                        // TODO - Not sure what version of Pell this class uses as it doesn't seem to be the latest 
                        //這里倒是說明了條件,就是不知道為什么還這么做
                      return new String[]{multi.getFile(fieldName).getName()};
          }
          ---------------------------------------------------------------------------------------//



          可以看到
          multi.getFile(fieldName).getName()如果文件為空肯定會報錯的
          可以先修改成以下方式
          //---------------------------------------------------------------------------------------
          public String[] getFileNames(String fieldName) {
                  if(multi.getFile(fieldName)!=null)   //多加一個判斷
                      return new String[]{multi.getFile(fieldName).getName()};
                  else
                      return new String[]{};
              }
          ----------------------------------------------------------------------------------------//
          這樣form里file不選文件就不在出異常了
          用cos上傳處理方法一樣



          除上面方法
          還修改fileupload攔截器也可以解決
          String[] fileName = multiWrapper.getFileNames(inputName);
          找到這行
          然后修改成下面樣子
          //-----------------------------------------------------------------------------------
          String[] fileName =null;

          try{
                fileName = multiWrapper.getFileNames(inputName);
          }catch(Exception ex){
                //file is null
          }
          -----------------------------------------------------------------------------------//

          posted on 2006-02-20 10:15 劍事 閱讀(2215) 評論(0)  編輯  收藏 所屬分類: webwork
          主站蜘蛛池模板: 大港区| 景谷| 都匀市| 晋宁县| 进贤县| 水富县| 花莲县| 安陆市| 丹凤县| 张掖市| 萨嘎县| 镇原县| 儋州市| 灌阳县| 汝州市| 彭泽县| 集安市| 商洛市| 涟源市| 交口县| 会宁县| 南宫市| 定陶县| 通化市| 榕江县| 延吉市| 清远市| 屏东县| 宝山区| 龙里县| 古交市| 荣成市| 临洮县| 香港| 东山县| 武冈市| 万宁市| 德昌县| 钟山县| 襄樊市| 梁平县|