Struts2 上传文件主要代码

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

public File file; //与页面上的 input file 标签的name 一样
 public String name;

 

/**
  * 上传文件公共方法
  * @param url 地址
  * @param ext 后缀名
  * @return 上传成功
  */
 public boolean file(String url,String ext) {
  response = getResponse();

  InputStream input = null;
  long time = System.currentTimeMillis();
  OutputStream os = null;
  try {
   System.out.println(name);
   SystemParameter systemParameter = (SystemParameter) getRequest()
     .getSession().getServletContext()
     .getAttribute("systemParameter");
   String path = systemParameter.getFilePath() + url ;
   String houzui = name.substring(name.lastIndexOf("("), name.length());
   if (houzui.equals("(空白)")) {
    name=name.substring(0, name.indexOf("("));
   }
   if (name.equals("流程图")) {
    name="liuchen";
   }
   // 检查文件是否存在
   File f = new File(path, name+ ext);
   if (f.exists()) {
    System.out.println(f.getAbsolutePath());
    System.out.println(f.getName());
    String newName = path + name + "old_" + time
      + ext;

    System.out.println(newName);
    boolean is = f.renameTo(new File(newName));
    if (is == false) {
     f.renameTo(new File(path + name + ext));
    
     return false;
    } else {
     // 如果存在,在读一次改过文件的名字,如果新的名字不存在,就提示上传失败
     File file = new File(newName);
     if (!file.exists()) {
      return false;
     }
    }
   }
   input = new FileInputStream(file);

   os = new FileOutputStream(f);
   byte[] by = new byte[1024];
   int length = input.read(by);
   while (length != -1) {
    os.write(by, 0, length);
    length = input.read(by);
   }
   return true;
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  } finally {
   try {
    if (input != null)
     input.close();
    if (os != null)
     os.close();
  } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }