struts2下ServletFileUpload的parseRequest返回空数组解决方案

 

在struts中追加如下代码

<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="myRequestParser"
class="org.zhwy.exchange.common.RequestParseWrapper" scope="default" optional="true" />

 

2.3.5版本
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="myRequestParser" 
class="org.zhwy.exchange.common.RequestParseWrapper" scope="prototype" optional="true" />
<constant name= "struts.multipart.parser" value= "myRequestParser" />

  

 

注意上面的struts.multipart.parser这个,根据struts版本不同,值不一样

2、新建上面的类方法

public class RequestParseWrapper extends JakartaMultiPartRequest {
    public void parse(HttpServletRequest servletRequest, String saveDir)throws IOException {
    }
}

  

 3. action后台处理,form  enctype="multipart/form-data"  表单

String temppath = "/temp/";
File tempDir = new File(temppath);
if(!tempDir.exists())tempDir.mkdirs();		 
File tempFile =null; HttpServletRequest request = ServletActionContext.getRequest(); ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory()); if(ServletFileUpload.isMultipartContent(request))
{ List<FileItem> multiparts = servletFileUpload.parseRequest(request); for (FileItem item : multiparts)
{ if (!item.isFormField()) //非
      { String fileName = item.getName(); String contentType = item.getContentType(); tempFile = new File(temppath +File.separator +fileName); item.write(tempFile);   }
   } }

  

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/lvdouyatou/article/details/138966837

posted @ 2024-12-20 16:24  不会游泳的鱼~~  阅读(18)  评论(0编辑  收藏  举报