struts上传文件时,发现两个问题:
1.只要输入盘符比如D:就可以提交了,没有异常出现;
2.如果输入并不存在的文件名比如D:\1.txt(D盘中没有1.txt),提交后会自动在上传目录里新建一个空的1.txt。上传文件在form中的类型好像只能是接口FormFile,试过其他类型会出错,提示setter方法参数不匹配。但是FormFile只有那几个方法,不知道怎么用来判断。
不上传时,file.getFileName().length()=0,file.getFileSize()=0;
只输入盘符时也一样,file.getFileName().length()=0,file.getFileSize()=0;
输入错误字符,如aa:\时,按“提交”没有反应。请问如何在form中验证:
1.是否选择了文件名?
2.文件是否存在?

解决方案 »

  1.   

    if(DailyNetCheck.isEmpty(evaluate_fileFileName)) {
    addFieldError(PAY_PRIZE_ERROR, getText(CodeConstant.MSG_COMMON_001, 
    new String []{CodeConstant.MSG_PARAM_FILE}));
    }else{
    // 文件大小チェック
    if(evaluate_file.exists()) {
    try {
    FileInputStream  fis = new FileInputStream(evaluate_file);
    if(fis.available() > BUFFER_SIZE) {
    addFieldError(PAY_PRIZE_ERROR, getText(CodeConstant.MSG_COMMON_021, 
    new String [] {CodeConstant.MSG_PARAM_EVALUATE_FILE}));
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }参考一下.