SpringMVC-3 FileUpload-1.2 文件上传

<后台校验>

    import org.apache.commons.lang3.ArrayUtils;
    import org.springframework.web.multipart.MaxUploadSizeExceededException;
    import org.springframework.web.multipart.MultipartFile;

    public class MultipartFileValidator {    
    // 默认的上传文件大小1M
    private final static  long MAX_SIZE=1024*1024;      
    //文件大小上限 
    private long maxSize = MAX_SIZE;  
    //可接受的文件content-type 
    private String[] allowedContentTypes;    
    //设置上传文件上限值 
    public void setMaxSize(long maxSize) {
    this.maxSize = MAX_SIZE*maxSize;   }
    //设置上传文件类型
     public void setAllowedContentTypes(String[] allowedContentTypes) {
    this.allowedContentTypes = allowedContentTypes;}    
    //文件校验 
    public void validate(MultipartFile file) throws Exception{      
        if(file != null && !file.isEmpty()){        
            //1.检查文件大小
            if(file.getSize()<=0)
                throw new Exception("The multipart file is null!");
            if(file.getSize()>maxSize)
                throw new MaxUploadSizeExceededException(maxSize);      
            //2.检查文件类型
            String filename=file.getOriginalFilename();
            String extensionName = filename.substring(filename.lastIndexOf("."), filename.length()).toLowerCase();
            if(!ArrayUtils.contains(allowedContentTypes, extensionName))
                throw new Exception("The content type '"+file.getContentType()+"'is not a valid content type !");
        }
    }
  }

<前台JS校验>
[html标签:] <input type="file" id="file_id" onchange="validateFile()"/>
[Js函数脚本:] 引入Jquery1.7脚本文件:

<script type="text/javascript" src="/pages/js/jquery-1.7.js"></script>
<script type="text/javascript"> var fileChk={ filetypes:[".jpg",".png",".rar",".txt",".zip",".doc",".ppt",".xls",".pdf",".docx",".xlsx"], filemaxsize:1024*1024*20,//单位bytes,大小20M errinfo:{ fileNotExists:"您选择的文件不存在!", fileSizeNull:"您选择的文件为空文件!", fileOutSize:"您选择的文件大小超过上限值(20M)", fileTypeError:"目前仅支持如下类型文件[.jpg,.png,.rar,.txt,.zip,.doc,.ppt,.xls,.pdf,.docx,.xlsx]" } }; //判断元素是否为空 function isNotNull(obj){ if(obj==null||obj==''||obj==undefined){ return false; }else{ return true; } }; //校验文件 function validateFile(){ var file=$("#file_id")[0].files[0]; //文件空校验 if(!isNotNull(file)){ return fileChk.errinfo.fileNotExists; }else{ var filename = file.name;//文件名称  var filesize = file.size; //文件大小 var filetypes =fileChk.filetypes; var filemaxsize = chks.filemaxsize; //文件类型校验 if(isNotNull(filename)){ var isflag=false; //获取文件扩展名 var extensionName = filename.substring(filename.lastIndexOf("."),filename.length).toLowerCase(); if(isNotNull(filetypes) && filetypes.length>0){ for(var t in filetypes){ if(filetypes[t]==extensionName){ isflag=true; break; } } } if(!isflag){ return fileChk.errinfo.fileTypeError; } } //文件大小校验  if(filesize<=0){ return fileChk.errinfo.fileSizeNull; }else if(filesize>filemaxsize){ return fileChk.errinfo.fileOutSize; } } }; </script>

你可能感兴趣的:(springMVC,fileupload,校验,上件上传)