许多朋友和我一样,取得的文件为null
属性当然也是对的。为什么呢。
是因为struts2上传时要加上传拦截,
如:
(1) <action name="file" class="fileAction">
<!--Auto Register Action:2010-07-07 14:22:37.281-->
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件大小 -->
<param name="maximumSize">4000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="save_path">/fileout</param>
<result name="fileinfo" type="json">
file/file.jsp
</result>
</action>
配置后可正常上传文件。。
(2)一定要是post的而且enctype="multipart/form-data"
<form action="../console/processReleaseAction!upLoadFile.action" method="post" enctype="multipart/form-data">
<input type="file" value="上传" name="flowFile" />
<input type="submit" value= "提交12" id="submit"/>
</form>
(3)Action的变量和form的名称一致,并且有get和set方法,我这就不详细写了
/**
* @属性说明:接收客户端文件信息
**/
private File flowFile;
/**
* @属性说明:接收客户端文件文件名
**/
private String flowFileFileName;
private String flowFileContentType;
(4)struts2的过滤器配置
<action name="processReleaseAction" class="cn.net.sinodata.sinoflow.console.processrelease.action.ProcessReleaseAction">
<interceptor-ref name="fileUpload">
<param name="maximumSize">4000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="success">/WEB-INF/jsp/console/processrelease/processRelease.jsp</result>
</action>
(5)web.xml的struts2配置添加(这个是在struts2基础配置上添加的单独的文件上传过滤,详情可见struts2书籍介绍)
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
(6)struts.xml添加 <constant name="struts.multipart.maxSize" value="1073741824" />,完整的struts.xml为
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.ui.theme" value="simple" />
<constant name="struts.i18n.encoding" value="GBK" />
<constant name="struts.custom.i18n.resources" value="globalMessages" />
<constant name="struts.multipart.maxSize" value="1073741824" />
<!-- 引入相关配置文件 -->
<include file="cn/net/sinodata/sinoflow/config/struts/struts-common.xml"/>
<include file="cn/net/sinodata/ua/config/struts/user.xml" />
</struts>
<7>再不行,确认jar包没问题后,请加qq654382144!!!