zoukankan      html  css  js  c++  java
  • Struts2文件上传的大小限制问题

    <?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>
        <!-- 1配置自定义文件类myRequestParser,继承MultiPartRequest重写 -->
        <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest"
            name="myRequestParser" class="com.vrv.paw.action.MyJakartaMultiPartRequest"
            scope="default" optional="true" />
        <constant name="struts.multipart.parser" value="myRequestParser" />
        <!--struts2 公共配置 -->
        <constant name="struts.devMode" value="false" />
        <constant name="struts.ui.theme" value="simple" />
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
        <constant name="struts.objectFactory" value="spring" />
        <constant name="struts.action.extension" value=",do" />
        <!-- 2文件上传:大小 限制(默认2M,这里限制为10G) -->
        <constant name="struts.multipart.maxSize" value="10485760000" />
        <constant name="struts.multipart.saveDir" value="/temp" />
        <!-- 配置struts2的过滤器不拦截授权码的servlet -->
        <constant name="struts.action.excludePattern" value="/services.*,/servlet/code.*,/scripts/fckeditor/editor/filemanager.*,/Servlet/download.*" />
        
        <!--default config-->
        <package name="default" namespace="/" extends="struts-default">
            <global-results>
                <result name="downLoadUI" type="chain">
                    <param name="actionName">downLoadDataAction</param>
                    <param name="namespace">/download</param>
                </result>
                <result name="success">/WEB-INF/pages/public/success.jsp</result>
                <result name="error">/WEB-INF/pages/public/error.jsp</result>
                <result name="fail">/WEB-INF/pages/public/fail.jsp</result>
    
            </global-results>
    
            <global-exception-mappings>
                <exception-mapping result="error" exception="java.lang.Exception" />
            </global-exception-mappings>
            <!--登录退出及主界面配置  -->
            <action name="welcomeAction_*" class="welcomeAction" method="{1}">
                <result name="{1}">/WEB-INF/pages/welcomeAction/{1}.jsp</result>
                <result name="main">/WEB-INF/pages/welcomeAction/main.jsp</result>
                <result name="installUI">/WEB-INF/pages/installAction/installUI.jsp</result>
                <result name="warm">/WEB-INF/pages/code/warm.jsp</result>
                <result name="overdue">/WEB-INF/pages/code/overdue.jsp</result>
                <result name="welcome">/WEB-INF/pages/welcomeAction/welcome.jsp</result>
            </action>
        </package>
        <!-- 下载  -->
        <package name="download" namespace="/download" extends="default">
            <action name="downLoadDataAction" class="downLoadDataAction">
                <result name="success" type="stream">
                    <param name="contentType">application/octet-stream;charset=UTF-8</param>
                    <param name="inputName">targetFile</param>
                    <param name="contentDisposition">${browserName}</param>
                    <param name="bufferSize">4096</param>
                </result>
            </action>
        </package> 
        <!--可引入其他的扩展配置文件 -->
        <include file="struts-extend.xml" />
    </struts>
     <!-- 2文件上传:大小 限制(默认2M,这里限制为10G) -->
      <constant name="struts.multipart.maxSize" value="10485760000" />

    struts.xml文件中的大小与实际文件大小的关系:1048576(Bytes) = 1024*1024 = 1M实际文件大小.

    struts.multipart.maxSize掌控整个项目所上传文件的最大的Size

    struts.multipart.maxSize和fileUpload拦截器的maximumSize属性分工不同,总结如下:
    1.struts.multipart.maxSize掌控整个项目所上传文件的最大的Size。超过了这个size,后台报错,程序处理不了如此大的文件。fielderror里面会有如下的提示:
    the request was rejected because its size (16272982) exceeds the configured maximum (9000000)


    2.fileUpload拦截器的maximumSize属性必须小于struts.multipart.maxSize的值。
    struts.multipart.maxSize默认2M,当maximumSize大于2M时,必须设置struts.multipart.maxSize的值大于maximumSize。


    3.当上传的文件大于struts.multipart.maxSize时,系统报错
    当上传的文件在struts.multipart.maxSize和maximumSize之间时,系统提示:
    File too large: file "MSF的概念.ppt" "upload__5133e516_129ce85285f__7ffa_00000005.tmp" 6007104
    当上传的文件小于maximumSize,上传成功。

  • 相关阅读:
    网站优化记录
    在pc游览器端模拟移动端幻灯片
    jquery消息提示框
    开发jquery tab 插件
    js检测是否安装了flash插件
    javaweb项目下解决360兼容模式不能下载文件问题
    简单的excel上传解析和错误反馈信息下载
    sqlserver带游标存储过程及调用函数
    oracle带游标存储过程编写
    简单的spring+dubbo提供和消费方
  • 原文地址:https://www.cnblogs.com/liaojie970/p/4954042.html
Copyright © 2011-2022 走看看