首页 > 代码库 > Struts2文件上传

Struts2文件上传

平时都是直接在action中按照struts2定义的格式来接流,最近看到华为技术人员调用struts2底层方法对文件流做了封装,感觉有用赶紧记了下来 

Java代码  
 
 
 
public void preExecute()      {          if (httpServletRequest instanceof MultiPartRequestWrapper)          {              MultiPartRequestWrapper requestWrapper = (MultiPartRequestWrapper) httpServletRequest;              Enumeration<String> parameterNames = requestWrapper.getFileParameterNames();              while (parameterNames.hasMoreElements())              {                  @SuppressWarnings("unused")                  String paramterName = parameterNames.nextElement();                  File[] files = requestWrapper.getFiles(paramterName);                  if (null == files || files.length == 0)                  {                      continue;                  }                  else if (files.length == 1)                  {                      FileBean fileBean = new FileBean();                      fileBean.setAbsolutePath(files[0].getAbsolutePath());                      fileBean.setFileSize(files[0].length());                      fileBean.setFilename(requestWrapper.getFileNames(paramterName)[0]);                      this.fileMap.put(paramterName, fileBean);                  }                  else                  {                      ArrayList<FileBean> list = new ArrayList();                      for (int i = 0; i < files.length; i++)                      {                          File file = files[i];                          FileBean fileBean = new FileBean();                          fileBean.setAbsolutePath(file.getAbsolutePath());                          fileBean.setFileSize(file.length());                          fileBean.setFilename(requestWrapper.getFileNames(paramterName)[i]);                          list.add(fileBean);                      }                      this.fileMap.put(paramterName, list);                  }              }          }      }  

 

Struts2文件上传