common-fileupload入门

//common-fileupload入门代码
//判断表单是否是Multipart类型的。这里可以直接对request进行判断  
   if (ServletFileUpload.isMultipartContent(request)) {  
   // 创建文件处理工厂,它用于生成 FileItem 对象。   
   DiskFileItemFactory factory = new DiskFileItemFactory();   
    //设置文件的缓存路径  
      String tempdir =this.getServletContext().getRealPath("/upload/temp");      
    java.io.File d = new java.io.File(savedir);  
       if(!d.exists()){  
        d.mkdirs();  
        }  
       
    factory.setSizeThreshold(1024*1024); // 设置最多只允许在内存中存储的数据,单位:字节  
    factory.setRepository(d); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录(默认可以不用设置)  
 
    // Create a new file upload handler  
    ServletFileUpload upload = new ServletFileUpload(factory);  
    // 设置允许用户上传文件大小,单位:字节  
    upload.setSizeMax(yourMaxRequestSize);  
    //上传文件,并解析出所有的表单字段,包括普通字段和文件字段  
    List  items = upload.parseRequest(request);   
         //下面对每个字段进行处理,分普通字段和文件字段  
   Iterator it = items.iterator();  
   while(it.hasNext()){  
    FileItem fileItem = (FileItem) it.next();  
    //如果是普通字段  
    if(fileItem.isFormField()){  //是普通的字段  
     System.out.println(fileItem.getFieldName() + "   " + fileItem.getName() + "   " + new String(fileItem.getString().getBytes("iso8859-1"), "gbk"));  
    fileItem.getFieldName();//得到字段name属性的值  
    fileItem.getName();//得到file字段的文件名全路径名,如果不是file字段,为null  
    fileItem.getString();//得到该字段的值,默认的编码格式  
    fileItem.getString("UTF-8");//指定编码格式  
    }else{//文件字段  
         System.out.println(fileItem.getFieldName() + "   " +  
        fileItem.getName() + "   " +//得到file字段的文件名全路径名  
        fileItem.isInMemory() + "    " +//用来判断FileItem类对象封装的主体内容是存储在内存中,还是存储在临时文件中,如果存储在内存中则返回true,否则返回false  
        fileItem.getContentType() + "   " +//文件类型  
        fileItem.getSize());          //文件大小  
       //什么东西都有了 ,想怎么处理都可以了  
     //保存文件,其实就是把缓存里的数据写到目标路径下  
     if(fileItem.getName()!=null && fileItem.getSize()!=0){  
      File fullFile = new File(fileItem.getName());  
      File newFile = new File("c:/temp/" + fullFile.getName());  
      try {  
       fileItem.write(newFile);  
      } catch (Exception e) {  
       e.printStackTrace();  
      }  
     }else{  
      System.out.println("文件没有选择 或 文件内容为空");  
     }
   }
}
}

你可能感兴趣的:(fileupload)