commons-fileupload上传

commons-fileupload上传在这里分三步说明:

第一步:jsp页面Form表单:

                     

        <form name="form1" id="form1" action="${root }/save" enctype="multipart/form-data" method="post" onsubmit="return checkFile(document.getElementById('file'),'errShow2');" >


       <textarea style='width:99%' rows="10"  name="mc" id="mc" ></textarea>       
       <input type="file" name="file" id="file" style="width: 98%"/>&nbsp;&nbsp;
       <input type="submit" value="保&nbsp;存"  />


        </form>

第二步:javascript验证上传文件(以只允许上传txt文件为例):

          //验证文件类型

  function checkFile(imgFile,id)
  {
      var fileName=getFileName(imgFile);//获取上传文件名称
      var fileType=getFileType(fileName); //获取上传文件类型
      var bool=checkImgType(fileType);//检查上传文件类型
      if(!bool){
           //验证没通过,不允许上传
           return false;
      }

      //验证通过

      return true;
   }

var right_type=new Array("txt")//设置允许上传的文件类型
function checkImgType(fileStr)

       fileStr=fileStr.toLowerCase();
       for (i=0;i<right_type.length;i++){
             if(right_type[i]==fileStr){return true;}
       }
       return false;
}
function getFileName(fileObj)
{
       var filepath = fileObj.value; 

       if(filepath==null||filepath==""){return "";}
       if(filepath.lastIndexOf("
\\")!=-1){
              filename= filepath.substring(filepath.lastIndexOf("
\\")+1,filepath.length);
              return filename;
       }else{
              return filepath;
       }   
}
function getFileType(fileName)
{
       if(fileName==null||fileName==""){return "";}
       if(fileName.lastIndexOf(".")!=-1){
               fileType= fileName.substring(fileName.lastIndexOf(".")+1,fileName.length);
               return fileType;
        }else{
               return "";
        }
}

第三步:后台java代码获取上传内容,上传文件

DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("UTF-8");

List<FileItem> list = upload.parseRequest(request); 

String mc = null;//表单中的mc输入项

for (FileItem item : list) {
     if (!item.isFormField()) {//如果是上传的文件
             String name = item.getName();//上传文件的名称
              byte[] bin = item.get();
              if (bin.length > 1024 * 1024) {//可用来限制上传文件的大小,这里限制了1024K字节!


              }else if(bin!=null&&bin.length>0){//上传的文件处理
     

              }
     }else{//如果是form表单内容
                if("mc".equalsIgnoreCase(item.getFieldName())){
                          mc = item.getString("UTF-8");//设置表单数据的编码
                 } 
     }
 }
 

猜你喜欢

转载自wangxiaobing42008.iteye.com/blog/1152027