现在的位置: 首页 > 综合 > 正文

Struts2 文件上传后台校验上传文件的大小,过大时跳转到错误页面并返回

2014年01月13日 ⁄ 综合 ⁄ 共 2038字 ⁄ 字号 评论关闭

 

         Struts_upload.xml 配置如下:

       

     <interceptor-ref name ="fileUpload"> 
            <param name="maximumSize">20971520</param>
     </interceptor-ref>
     <result name="input">/WEB-INF/pages/tooLargeError.jsp</result>

 

          注:文件大小最大设置为20971520b=20M。设置result name="input"返回到提示页面是因为上传文件过大时,Struts2返回的是input。

 

          提示页面如下:

            

<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<jsp:directive.page import="java.io.PrintWriter;" />
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>上传文件过大</title>
<link href="<%=request.getContextPath() %>/css/main.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
	function countDown(tick) {
		if (tick == 0) {
			window.history.go(-1);
			return;
		}
		var time = "Transfer in ";
		var minute = Math.floor(tick / 60);
		if (minute < 10) {
			time += "0";
		}
		time += minute + ":";
		var second = tick % 60;
		if (second < 10) {
			time += "0";
		}
		time += second;
		--tick;
		var command = "countDown(" + tick + ")";
		window.setTimeout(command, 100);
	}
</script>
</head>
<body class="rightbg" onload="window.setTimeout('countDown(12)',10);" >
<div class="rightBox">
<div class="title"><span class="floatLeft"><strong>操作提示</strong></span><span class="floatRight">
</span></div>
<div class="add">
  <table width="90%" height="440px" border="0" cellpadding="0" cellspacing="10" style="margin-left:80px;">
     <tr>
      <td width="30%" align="right" valign="middle"><span><img src="<%=request.getContextPath() %>/images/Error.png" width="35" height="35" /></span></td>
      <td width="70%" align="left" valign="middle" class="color1422">
      	<font style="font-size:14px;">上传的apk文件不能大于20M,请重新上传!正在返回,请稍后...</font>
      </td>
     </tr>
    </table>
  <p> </p>
</div>
</div>
</body>
</html>

PS:

token不一致时会出现如下waring

2013-05-21 08:51:23 WARN  [Class:org.apache.struts2.util.TokenHelper] ====Form token 1N93VYB3H5Q8XN0SQ53YDAMU62HLEPS4 does not match the session token 9RPUL80JP02IXCP2YXMQLBRXW9YU4STU.

而且页面可能会报错。

此时建议在struts.xml中增加如下配置:

<!-- token不一致 --> 
<result name="invalid.token">/WEB-INF/pages/tokenError.jsp</result>

可以在tokenError.jsp中提示token不一致之类的信息于用户,这样更能体现用户友好性。

至于设置result name="invalid.token"返回到提示页面是因为token不一致时,Struts2返回的是invalid.token。



 

 

抱歉!评论已关闭.