struts2 文件上传为空

许多朋友和我一样,取得的文件为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!!!


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值