struts 2ファイルアップロードcheckファイルタイプサイズ

2054 ワード

jspをプレゼンテーションレイヤとして使用していないためです.フロントはextjsだらけでstruts 2のファイルアップロードブロッカーはファイルサイズ、ファイルタイプのエラーをブロックしたが、エラー情報はフロントextjsに戻ることができなかった.struts 2デフォルトでresult inputを構成する
No result defined for action**Action and result inputですのでactionでしか検証できず、業務異常でjsonに投げつけます
/**
      *       
      * @param file      
      * @param type         (1.csv   2.    )
      * @param imageType         
      * @param fileName      
      * @return
      */
    public static boolean fileTypeValidate(File file,int type,String imageType,String... fileName){ 
        if(file!=null){
            try{
                if(type==1){
                    if(!imageType.equals("application/vnd.ms-excel")){
                        return false;
                    }else {
                        String str = fileName[0].substring(fileName[0].lastIndexOf(".")).toLowerCase();
                        if(!str.equals(".csv")){
                            return false;
                        }
                    }
                }else if(type==2){
                    if(!imageType.equals("image/png")&&!imageType.equals("image/gif")&&!imageType.equals("image/jpeg")&&!imageType.equals("image/bmp")){
                        return false;
                    } 
                } 
            }catch (Exception e){
                return false;
            }
        } 
        return true;
    }
    
     
    /**
     *       
     * @param file      
     * @param size          
     * @return
     */
   @SuppressWarnings("resource")
   public static boolean fileSizeValidate(File file,int size){ 
       if(file!=null){
           try{
               FileInputStream ins = new FileInputStream(file);
               if (ins.available() > 1024 * 1024 * size) {
                   file.delete(); 
                   return false;
               }
           }catch (Exception e){
               return false;
           }
       } 
       return true;
   }