struts2配置commons-fileupload的问题

来源:互联网 发布:颜值最高的手机知乎 编辑:程序博客网 时间:2024/05/22 03:16

这个问题主要出现在上传文件时parseRequest()的值为空,原因是struts2的Filter拦截了。

 

  1. ServletFileUpload sfu= new ServletFileUpload(factory);   
  2. List fileList= sfu.parseRequest(request);  

 

解决办法一、

修改一下web.xml配置
 

  1. <filter-mapping> 
  2.     <filter-name>struts2</filter-name> 
  3.     <url-pattern>/*</url-pattern> 
  4. </filter-mapping> 
  5.  
  6. <!--改为--> 
  7. <filter-mapping> 
  8.     <filter-name>struts2</filter-name> 
  9.     <url-pattern>/*.action</url-pattern> 
  10. </filter-mapping> 

解决办法二、

 

  1. 一、在项目中添加commons-fileupload-1.x.x.jar、commons-io-1.x.x.jar两个包  
  2.    二、把页面中form表单的enctype属性设置为:”multipart/form-data”,并设置method属性值为:post。否则不会编译成功的。  
  3.    三、便是在action中编写以下代码:  
  4.  private File uploadFile; //得到上传的文件  
  5.  private String uploadFileContentType; //得到文件的类型  
  6.  private String uploadFileFileName; //得到上传文件名称  
  7.  public File getUploadFile() {  
  8.  return uploadFile;  
  9.  }  
  10.  public void setUploadFile(File uploadFile) {  
  11.  System.out.println("文件"+uploadFile);  
  12.  this.uploadFile = uploadFile;  
  13.  }  
  14.  public String getUploadFileContentType() {  
  15.  return uploadFileContentType;  
  16.  }  
  17.  public void setUploadFileContentType(String uploadFileContentType) {  
  18.  this.uploadFileContentType = uploadFileContentType;  
  19.  }  
  20.  public String getUploadFileFileName() {  
  21.  return uploadFileFileName;  
  22.  }  
  23.  public void setUploadFileFileName(String uploadFileFileName) {  
  24.  this.uploadFileFileName = uploadFileFileName;  
  25.  }  
  26.    
  27. /**  
  28.  * @return  
  29.  */ 
  30.  public String uploadFile() throws Exception {  
  31.  String realpath=ServletActionContext.getServletContext().getRealPath("/images");  
  32.  System.out.println("上传文件名称:"+uploadFileFileName);  
  33.  //自定义上传文件名称  
  34. uploadFileFileName="测试哈"+uploadFileFileName.substring(uploadFileFileName.lastIndexOf("."));  
  35.  System.out.println("上传文件类型:"+uploadFileContentType);  
  36.  System.out.println("要上传的路径:"+realpath);  
  37.  File file=new File(realpath);  
  38.  
  39.  if(!file.exists())file.mkdirs();  
  40.  FileUtils.copyFile(uploadFile, new File(file,uploadFileFileName));  
  41.  return "sc";  
  42.  } 

 

原创粉丝点击