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