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

来源:互联网 发布:js遍历标签数组 编辑:程序博客网 时间:2024/05/16 06:54

 

         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。