public boolean uploadAndSave(HttpServletRequest request) throws IOException {
  uploader = new Upload(request.getSession().getServletContext(), request, "gb2312", 200); // 上传文件
 
  uploader.setSaveInTempFile(true);// 保存到临时文件
  upMsg = uploader.save();
 
  // 判断文件是否上传成功
  if (upMsg.isSuccessful) {
   files = uploader.getUploadedFiles();
 
   upFile = (UploadedFile) files.get(0);
 
   fileName = upFile.getAbsoluteFileName_Saved();// 得到文件路径
 
   fr = new FileReader(fileName); // 创建FileReader对象
 
   br = new BufferedReader(fr); // 创建BufferedReader对象
 
   Line = br.readLine();// 从文件读取一行字符串
 
   try {
    // 判断读取到的字符串是否不为空
    while (Line != null) {
     ps = this.getConn().prepareStatement(insert);
 
     // 字符串处理
     String[] newline = SplitterString.getTokens(Line, "] [");
     // 去除字符串头的"["号
     String temp1 = newline[0].substring(1);
     // 去除字符串尾的"]"号
     String temp2 = newline[newline.length-1].substring(0, (newline[newline.length-1].length()-1));
     
     //System.out.println(temp1 + "   " + temp2);
     //System.out.println(newline.length+"  "+(newline.length-1)+"  "+newline[newline.length-1]+"  "+(newline[newline.length-1].length()-1)+"  ");
     
     ps.setString(1, temp1); // 插入第一个处理后的截取字符串
     for (int i = 1; i < newline.length; i++) {
      ps.setString(i + 1, newline[i]); // 插入中间处理后的截取字符串
     }
     ps.setString(newline.length, temp2); // 插入最后一个处理后的截取字符串
 
     ps.executeUpdate();// 执行插入数据
 
     Line = br.readLine();// 从文件中继续读取下一行数据
    }
 
    ps.close(); // 关闭preparedstatement
 
   } catch (Exception ex) {
    // TODO 自动生成 catch 块
    ex.printStackTrace();
    return false;
   } finally {
    try {
     if (this.getConn() != null) {
      this.getConn().close();// 关闭数据库连接
     }
    } catch (SQLException e) {
     // TODO 自动生成 catch 块
     e.printStackTrace();
     return false;
    }
   }
 
   if (br != null) br.close();// 关闭BufferedReader对象
   if (fr != null) fr.close();// 关闭文件
   
   File f = new File(fileName);
   f.delete();// 删除临时文件
   
   return true;
  }
  else {
   // 文件上传失败! 
   return false;
  }
 }

解决方案 »

  1.   


    居然出现这样的事?给你批改作业?有没有问题你自己试一下就知道了呀
      

  2.   

    就这一个方法吗,你从哪找的,这么烂的代码怎么改啊,还不如重写呢
      

  3.   

    好乱啊。重写吧。一点都不清楚
      

  4.   

    我也觉得乱,但是主逻辑还是没有错的,运行可以通过
    就是要请教大家,要怎么样写才算逻辑清楚呢?
      

  5.   

    不算乱阿,如果逻辑没问题,不用改用好了。
      

  6.   

    是不是把实现的功能模块分开才算逻辑清晰?