用struts2框架
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request); 为空原因是struts2会改变reqeust的类型,由HttpServletRequest变成MultiPartRequestWrapper
解决方案1:
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
改成
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
解决方案2:
Struts2的配置文件加上如下内容:
<constant name="struts.multipart.maxSize" value="1152921504606846970006" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.multipart.saveDir" value="/tmp" />
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.devMode" value="false" />
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest"
name="myRequestParser" class="com.cn.RequestParseWrapper"
scope="default" optional="true" />
<constant name="struts.multipart.handler" value="myRequestParser" />
标红的这里你要写一个类,这个类的代码哪下所示:
public class RequestParseWrapper extends JakartaMultiPartRequest {
public void parse(HttpServletRequest servletRequest, String saveDir)throws IOException
{
}
}