使用Common-fileUpload 上传文件 读取文件内容

private String fileTmpPath = "";

 private int fileSize = 100;

 private static UpLoadFile loadFile = new UpLoadFile();

 public UpLoadFile() {
 }

 public UpLoadFile getInstance() {
  return loadFile;
 }

 /**
  * 缓存上传二进制文件
  * @param request 请求url
  * @return ServletFileUpload 对象
  */
 public ServletFileUpload configUploadTerm(HttpServletRequest request) {
  FileCleaningTracker fileCleaningTracker = FileCleanerCleanup
    .getFileCleaningTracker(request.getSession()
      .getServletContext());
  DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
  
  // 设置最多只允许在内存中存储的数据,单位:字节
  diskFileItemFactory.setSizeThreshold(1024 * fileSize);
  
  // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
  diskFileItemFactory.setRepository(new File(fileTmpPath));
  
  diskFileItemFactory.setFileCleaningTracker(fileCleaningTracker);
  
  ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory);
  
  upload.setHeaderEncoding("utf-8");
  //上传文件的最大值
  upload.setSizeMax(1024 * fileSize);
  
  return upload;
 }
 
 public int upLoadFiles(HttpServletRequest request){
  ServletFileUpload fileUpload = configUploadTerm(request);
  
  try {
   List<?> list = fileUpload.parseRequest(request);
   for(int i = 0 ; i < list.size() ; i ++){
    FileItem fileItem = (FileItem) list.get(i);
    if(!fileItem.isFormField()){
     try{
      BufferedReader reader = new BufferedReader(new InputStreamReader(fileItem.getInputStream(),"gbk"));
      while(null != reader.readLine()){
       System.out.println("行记录"+reader.readLine());
      }
     }catch (Exception e) {
     }
    }else{
     String s = new String(fileItem.getString().getBytes("iso-8859-1"),"utf-8");
     System.out.println("普通文本" + fileItem.getFieldName() + "\t" + s);
    }
   }
   return 1;
  } catch (FileUploadException e) {
   e.printStackTrace();
   return  0;
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
   return 0;
  }
 }

猜你喜欢

转载自arron-huang.iteye.com/blog/1032585