struts2附件上传,大小超过最大值处理
来源:互联网 发布:java版百战天虫 编辑:程序博客网 时间:2024/04/28 01:45
Action:
- /**
- * 当上传文件大小大于struts.multipart.maxSize提示时,
- * 客户端会出现如下错误:
- * "the request was rejected because its size (4501994)
- * exceeds the configured maximum (2097152)"。
- * 此信息在commons-fileupload.jar,
- * org.apache.commons.fileupload.FileUploadBase源代码中第904行。
- *
- * 重写addActionError()以替换默认信息。
- */
- @Override
- public void addActionError(String anErrorMessage) {
- //这里要先判断一下,是我们要替换的错误,才处理
- if (anErrorMessage.startsWith("the request was rejected because its size")) {
- //这些只是将原信息中的文件大小提取出来。
- Matcher m = Pattern.compile("\\d+").matcher(anErrorMessage);
- String s1 = "";
- if (m.find()) s1 = m.group();
- String s2 = "";
- if (m.find()) s2 = m.group();
- //偷梁换柱,将信息替换掉
- // super.addActionError("你上传的文件(" + s1 + ")超过允许的大小(" + s2 + ")");
- super.addActionError("您上传的附件过大,请确保单次所上传的附件大小总和没有超过20兆!");
- isExceedMaximum=true;
- } else {//不是则不管它
- super.addActionError(anErrorMessage);
- }
- }
/** * 当上传文件大小大于struts.multipart.maxSize提示时, * 客户端会出现如下错误: * "the request was rejected because its size (4501994) * exceeds the configured maximum (2097152)"。 * 此信息在commons-fileupload.jar, * org.apache.commons.fileupload.FileUploadBase源代码中第904行。 * * 重写addActionError()以替换默认信息。 */ @Override public void addActionError(String anErrorMessage) { //这里要先判断一下,是我们要替换的错误,才处理 if (anErrorMessage.startsWith("the request was rejected because its size")) { //这些只是将原信息中的文件大小提取出来。 Matcher m = Pattern.compile("\\d+").matcher(anErrorMessage); String s1 = ""; if (m.find()) s1 = m.group(); String s2 = ""; if (m.find()) s2 = m.group(); //偷梁换柱,将信息替换掉 // super.addActionError("你上传的文件(" + s1 + ")超过允许的大小(" + s2 + ")"); super.addActionError("您上传的附件过大,请确保单次所上传的附件大小总和没有超过20兆!"); isExceedMaximum=true; } else {//不是则不管它 super.addActionError(anErrorMessage); } }
jsp:
- <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
- <%@taglib uri="/struts-tags" prefix="s"%>
- <html>
- <body>
- <!--fielderror-->
- <s:if test="hasFieldErrors()">
- <s:iterator value="fieldErrors">
- <s:iterator value="value" status="statu">
- <!-- //field的错误消息是List 因此还需要迭代一次 -->
- <s:set name="index" value="#statu.index"/>
- <s:set name="msg" value="#msg+value.get(#request.index).toString()==null||#msg+value.get(#request.index).toString()=='null'?'':#msg+value.get(#request.index).toString()+'\\\n'"/><!-- 关键代码 不过开始时有null前缀未去掉 -- >
- </s:iterator>
- </s:iterator>
- </s:if>
- <!--actionerror -->
- <s:if test="hasActionErrors()">
- <s:iterator value="actionErrors">
- <script language="JavaScript">
- alert("<s:property escape="false"/>")
- </script>
- </s:iterator>
- </s:if>
- <!-- actionmessage -->
- <s:if test="hasActionMessages()">
- <s:iterator value="actionMessages">
- <script>
- alert("<s:property escape="false"/>")
- </script>
- </s:iterator>
- </s:if>
- <!-- 打印转换好格式的fielderror信息 -->
- <s:if test="#msg.length()>0">
- <script language="JavaScript">
- // alert('<s:property escape="false" value="#msg"/>')
- alert("可能资金格式不是数字,请确认!");
- </script>
- </s:if>
- <script language="JavaScript">
- history.back();
- </script>
- </body>
- </html>
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><%@taglib uri="/struts-tags" prefix="s"%><html> <body> <!--fielderror--> <s:if test="hasFieldErrors()"> <s:iterator value="fieldErrors"> <s:iterator value="value" status="statu"> <!-- //field的错误消息是List 因此还需要迭代一次 --> <s:set name="index" value="#statu.index"/> <s:set name="msg" value="#msg+value.get(#request.index).toString()==null||#msg+value.get(#request.index).toString()=='null'?'':#msg+value.get(#request.index).toString()+'\\\n'"/><!-- 关键代码 不过开始时有null前缀未去掉 -- > </s:iterator> </s:iterator> </s:if> <!--actionerror --> <s:if test="hasActionErrors()"> <s:iterator value="actionErrors"> <script language="JavaScript"> alert("<s:property escape="false"/>") </script> </s:iterator> </s:if> <!-- actionmessage --> <s:if test="hasActionMessages()"> <s:iterator value="actionMessages"> <script> alert("<s:property escape="false"/>") </script> </s:iterator> </s:if> <!-- 打印转换好格式的fielderror信息 --> <s:if test="#msg.length()>0"> <script language="JavaScript"> // alert('<s:property escape="false" value="#msg"/>') alert("可能资金格式不是数字,请确认!"); </script> </s:if> <script language="JavaScript"> history.back(); </script> </body> </html>
struts2.xml actionl配置:
如果action中默认的拦截器栈包含fileupload拦截器,就不要另外配置。如myStack,defaultStack。否则addActionError()会多执行一次,页面“您上传的附件过大,请确保单次所上传的附件大小总和没有超过20兆!"的提示会alert2次;
全局大小配置:
struts.xml
<constant name= "struts.multipart.maxSize" value="20971520" />
”
- struts2附件上传,大小超过最大值处理
- struts2上传图片超过大小给出错误提示
- 判断上传附件大小
- Struts2的上传附件
- 修改上传附件的大小
- wordpress 上传附件大小限制
- RT 系统上传附件大小。
- discuz 附件上传大小控制
- js判断附件上传大小
- struts2.0多附件上传
- Struts2 当上传的文件大小超过限制大小的时候,为什么没收到任何提示?
- 处理多附件上传功能
- OutLook 2010提示: 附件大小超过了允许的范围
- FileUpload 上传最大值和多个附件的上传
- struts2文件上传大小
- struts2配置文件上传大小
- struts2文件上传大小
- struts2--文件上传大小
- 解包和打包i9100固件factoryfs.img办法
- HTML框架应用的技巧
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- 华为与小米赛跑-续!!华为四款新机上市
- C++中的多态和虚函数
- struts2附件上传,大小超过最大值处理
- ubuntu 的android开发环境已经搭建完毕
- 单项选择题管理系统 密码123456 界面优美 带声音 界面切换 底色。。。。。。
- 系统调用过程分析
- 解决VMware Taking ownership of this virtual machine failed
- Race Condition引起的性能问题
- window.navigator对象
- activemq知识梳理
- WIN32 listview用法