//Java代码:
public class MtvColumnAction extends ActionSupport implements
ServletRequestAware, ModelDriven<MtvColumn> {
。
public String addColumn() throws Exception {
column.setCreateTime(new Date());
String createUser = (String)request.getSession().getAttribute("logUser");
column.setCreateUser(createUser);
column.setModifyTime(new Date());
column.setModifyUser(createUser);
Integer businessId = Integer.parseInt(request
.getParameter("mtvBusinessId"));
MtvBusiness mtvBusiness = mtvBusinessService.get(businessId);
column.setMtvBusiness(mtvBusiness);
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String address = format.format(new Date())
+ "column"
+ getPicFileFileName().substring(
getPicFileFileName().lastIndexOf("."));
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("/pic")
+ "/" + address);
column.setLogoPic("pic/" + address); boolean flag = mtvColumnService.save(column);
String result = "";
if(flag){
copy(picFile, imageFile);
result = "添加栏目信息成功!";
}
request.setAttribute("result", result);
request.setAttribute("sign", "add_column");
return "operationColumn";
}
。。
}//struts.xml配置文件:
<action name="columnInfo_*"
class="com.gzmobile.action.MtvColumnAction" method="{1}">
<param name="savePath">/pic</param>
<param name="businessName1">热榜明星面对面</param>
<param name="businessName2">精品视频火热推荐</param>
<param name="businessName3">美乐盛典</param>
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,image/jpg</param>
<param name="maximumSize">10240000</param>
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
<result name="input">/manager/column/{1}.jsp</result>
<result name="success">/manager/column/columnList.jsp</result>
<!-- <result name="columnList">/manager/column/columnList.jsp</result> -->
<result name="operationColumn">/manager/dealwith.jsp</result>
<result name="viewBusinessColumns">/view/businessColumns.jsp</result>
</action>
<action name="typeInfo_*"
class="com.gzmobile.action.MtvTypeAction" method="{1}">
<result name="input">/manager/type/{1}.jsp</result>
<result name="success">/manager/type/typeList.jsp</result>
<result name="operationType">/manager/dealwith.jsp</result>
</action>
<action name="sourceInfo_*"
class="com.gzmobile.action.MtvSourceAction" method="{1}">
<result name="input">/manager/source/{1}.jsp</result>
<result name="success">/manager/source/sourceList.jsp</result>
<result name="operationSource">/manager/dealwith.jsp</result>
</action>
<action name="areaInfo_*"
class="com.gzmobile.action.MtvAreaAction" method="{1}">
<result name="input">/manager/area/{1}.jsp</result>
<result name="success">/manager/area/areaList.jsp</result>
<result name="operationArea">/manager/dealwith.jsp</result>
</action>
<action name="singerInfo_*"
class="com.gzmobile.action.MtvSingerAction" method="{1}">
<result name="input">/manager/singer/{1}.jsp</result>
<result name="success">/manager/singer/singerList.jsp</result>
<result name="operationSinger">/manager/dealwith.jsp</result>
</action>
<action name="resourceInfo_*"
class="com.gzmobile.action.MtvResourceAction" method="{1}">
<param name="picPath">/pic</param>
<param name="videoPath">/video</param>
<param name="businessName1">热榜明星面对面</param>
<param name="businessName2">精品视频火热推荐</param>
<param name="businessName3">美乐盛典</param>
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,video/quicktime,audio/mpeg,image/jpg,text/plain,application/octet-stream,video/3gpp</param>
<param name="maximumSize">20971520</param><!-- 20M -->
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
<result name="input">/manager/resource/{1}.jsp</result>
<result name="success">/manager/resource/resourceList.jsp</result>
<result name="operationResource">/manager/dealwith.jsp</result>
<result name="columnResources">/view/columnResources.jsp</result>
<result name="viewIndex">/view/{1}.jsp</result>
<result name="oneResource">/view/oneResource.jsp</result>
</action>//struts.properties配置,已转码
struts.ui.theme=simple
struts.i18n.encoding=utf-8
struts.action.extension=htm
struts.multipart.saveDir=d:/tmp
struts.objectFactory = spring
struts.messages.error.content.type.not.allowed=\u4e0a\u4f20\u7684\u6587\u4ef6\u7c7b\u578b\u53ea\u80fd\u662f\u56fe\u7247\u6587\u4ef6\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9\uff01
struts.messages.error.file.too.large=\u60a8\u8981\u4e0a\u4f20\u7684\u6587\u4ef6\u592a\u5927\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9\uff01
struts.messages.error.uploading=\u60a8\u8981\u4e0a\u4f20\u7684\u5185\u5bb9\u5931\u8d25\uff01
//上传的网页
<s:form action="columnInfo_addColumn" enctype="multipart/form-data" name="uploadform">
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">栏目名称</td>
<td width="85%" bgcolor="E4EDF9"><s:textfield name="name" cssClass="textBox" /></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">所属业务</td>
<td width="85%" bgcolor="E4EDF9"><s:select list="#request.businessMap" listKey="key" listValue="value" name="mtvBusinessId" cssClass="textBox" /></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">LOGO图片</td>
<td width="85%" bgcolor="E4EDF9"><s:file name="picFile" cssClass="textBox" onchange="if(checkImgType(this.value)){perImg(this.value)};" /></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">是否计费跳转</td>
<td width="85%" bgcolor="E4EDF9"><s:radio list="{'是','否'}" value="%{'是'}" name="isCharge"></s:radio></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">是否隐藏</td>
<td width="85%" bgcolor="E4EDF9"><s:radio list="{'是','否'}" value="%{'否'}" name="isHide"></s:radio></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">是否首页推荐</td>
<td width="85%" bgcolor="E4EDF9"><s:radio list="{'是','否'}" value="%{'否'}" name="isHomePageRecomand"></s:radio></td>
</tr>
<tr bgcolor="#FFFFFF" >
<td colspan="2" align="center" bgcolor="#95CAFF"><s:submit value=" 添加 " cssClass="button" /></td>
</tr>
</s:form>
<tr bgcolor="#FFFFFF" >
<td colspan="2" align="center" bgcolor="#95CAFF"><s:fielderror/></td>
</tr>上传图片时,但大小超过2097152时,就会出现如下错误:
ERROR org.apache.struts2.interceptor.FileUploadInterceptor - #com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error(CommonsLogger.java:23)# - the request was rejected because its size (2744965) exceeds the configured maximum (2097152)
问题有如下:
1、该应用中,我上传图片时,要找的action是name="columnInfo_*",而且我配置是<param name="maximumSize">10240000</param>,为什么maximum不是10240000,而是2097152
2、假如找的action是name="resourceInfo_*",而<param name="maximumSize">20971520</param>,但为什么出错时,maximum是2097152,而不是20971520
3、当图片过大时,为什么无法在页面<td colspan="2" align="center" bgcolor="#95CAFF"><s:fielderror/></td>
上没错误信息输出,即struts.messages.error.file.too.large信息没输出。望高人指点,小弟谢先了!
public class MtvColumnAction extends ActionSupport implements
ServletRequestAware, ModelDriven<MtvColumn> {
。
public String addColumn() throws Exception {
column.setCreateTime(new Date());
String createUser = (String)request.getSession().getAttribute("logUser");
column.setCreateUser(createUser);
column.setModifyTime(new Date());
column.setModifyUser(createUser);
Integer businessId = Integer.parseInt(request
.getParameter("mtvBusinessId"));
MtvBusiness mtvBusiness = mtvBusinessService.get(businessId);
column.setMtvBusiness(mtvBusiness);
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String address = format.format(new Date())
+ "column"
+ getPicFileFileName().substring(
getPicFileFileName().lastIndexOf("."));
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("/pic")
+ "/" + address);
column.setLogoPic("pic/" + address); boolean flag = mtvColumnService.save(column);
String result = "";
if(flag){
copy(picFile, imageFile);
result = "添加栏目信息成功!";
}
request.setAttribute("result", result);
request.setAttribute("sign", "add_column");
return "operationColumn";
}
。。
}//struts.xml配置文件:
<action name="columnInfo_*"
class="com.gzmobile.action.MtvColumnAction" method="{1}">
<param name="savePath">/pic</param>
<param name="businessName1">热榜明星面对面</param>
<param name="businessName2">精品视频火热推荐</param>
<param name="businessName3">美乐盛典</param>
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,image/jpg</param>
<param name="maximumSize">10240000</param>
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
<result name="input">/manager/column/{1}.jsp</result>
<result name="success">/manager/column/columnList.jsp</result>
<!-- <result name="columnList">/manager/column/columnList.jsp</result> -->
<result name="operationColumn">/manager/dealwith.jsp</result>
<result name="viewBusinessColumns">/view/businessColumns.jsp</result>
</action>
<action name="typeInfo_*"
class="com.gzmobile.action.MtvTypeAction" method="{1}">
<result name="input">/manager/type/{1}.jsp</result>
<result name="success">/manager/type/typeList.jsp</result>
<result name="operationType">/manager/dealwith.jsp</result>
</action>
<action name="sourceInfo_*"
class="com.gzmobile.action.MtvSourceAction" method="{1}">
<result name="input">/manager/source/{1}.jsp</result>
<result name="success">/manager/source/sourceList.jsp</result>
<result name="operationSource">/manager/dealwith.jsp</result>
</action>
<action name="areaInfo_*"
class="com.gzmobile.action.MtvAreaAction" method="{1}">
<result name="input">/manager/area/{1}.jsp</result>
<result name="success">/manager/area/areaList.jsp</result>
<result name="operationArea">/manager/dealwith.jsp</result>
</action>
<action name="singerInfo_*"
class="com.gzmobile.action.MtvSingerAction" method="{1}">
<result name="input">/manager/singer/{1}.jsp</result>
<result name="success">/manager/singer/singerList.jsp</result>
<result name="operationSinger">/manager/dealwith.jsp</result>
</action>
<action name="resourceInfo_*"
class="com.gzmobile.action.MtvResourceAction" method="{1}">
<param name="picPath">/pic</param>
<param name="videoPath">/video</param>
<param name="businessName1">热榜明星面对面</param>
<param name="businessName2">精品视频火热推荐</param>
<param name="businessName3">美乐盛典</param>
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,video/quicktime,audio/mpeg,image/jpg,text/plain,application/octet-stream,video/3gpp</param>
<param name="maximumSize">20971520</param><!-- 20M -->
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
<result name="input">/manager/resource/{1}.jsp</result>
<result name="success">/manager/resource/resourceList.jsp</result>
<result name="operationResource">/manager/dealwith.jsp</result>
<result name="columnResources">/view/columnResources.jsp</result>
<result name="viewIndex">/view/{1}.jsp</result>
<result name="oneResource">/view/oneResource.jsp</result>
</action>//struts.properties配置,已转码
struts.ui.theme=simple
struts.i18n.encoding=utf-8
struts.action.extension=htm
struts.multipart.saveDir=d:/tmp
struts.objectFactory = spring
struts.messages.error.content.type.not.allowed=\u4e0a\u4f20\u7684\u6587\u4ef6\u7c7b\u578b\u53ea\u80fd\u662f\u56fe\u7247\u6587\u4ef6\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9\uff01
struts.messages.error.file.too.large=\u60a8\u8981\u4e0a\u4f20\u7684\u6587\u4ef6\u592a\u5927\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9\uff01
struts.messages.error.uploading=\u60a8\u8981\u4e0a\u4f20\u7684\u5185\u5bb9\u5931\u8d25\uff01
//上传的网页
<s:form action="columnInfo_addColumn" enctype="multipart/form-data" name="uploadform">
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">栏目名称</td>
<td width="85%" bgcolor="E4EDF9"><s:textfield name="name" cssClass="textBox" /></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">所属业务</td>
<td width="85%" bgcolor="E4EDF9"><s:select list="#request.businessMap" listKey="key" listValue="value" name="mtvBusinessId" cssClass="textBox" /></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">LOGO图片</td>
<td width="85%" bgcolor="E4EDF9"><s:file name="picFile" cssClass="textBox" onchange="if(checkImgType(this.value)){perImg(this.value)};" /></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">是否计费跳转</td>
<td width="85%" bgcolor="E4EDF9"><s:radio list="{'是','否'}" value="%{'是'}" name="isCharge"></s:radio></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">是否隐藏</td>
<td width="85%" bgcolor="E4EDF9"><s:radio list="{'是','否'}" value="%{'否'}" name="isHide"></s:radio></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">是否首页推荐</td>
<td width="85%" bgcolor="E4EDF9"><s:radio list="{'是','否'}" value="%{'否'}" name="isHomePageRecomand"></s:radio></td>
</tr>
<tr bgcolor="#FFFFFF" >
<td colspan="2" align="center" bgcolor="#95CAFF"><s:submit value=" 添加 " cssClass="button" /></td>
</tr>
</s:form>
<tr bgcolor="#FFFFFF" >
<td colspan="2" align="center" bgcolor="#95CAFF"><s:fielderror/></td>
</tr>上传图片时,但大小超过2097152时,就会出现如下错误:
ERROR org.apache.struts2.interceptor.FileUploadInterceptor - #com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error(CommonsLogger.java:23)# - the request was rejected because its size (2744965) exceeds the configured maximum (2097152)
问题有如下:
1、该应用中,我上传图片时,要找的action是name="columnInfo_*",而且我配置是<param name="maximumSize">10240000</param>,为什么maximum不是10240000,而是2097152
2、假如找的action是name="resourceInfo_*",而<param name="maximumSize">20971520</param>,但为什么出错时,maximum是2097152,而不是20971520
3、当图片过大时,为什么无法在页面<td colspan="2" align="center" bgcolor="#95CAFF"><s:fielderror/></td>
上没错误信息输出,即struts.messages.error.file.too.large信息没输出。望高人指点,小弟谢先了!
解决方案 »
- 求MyBatis调用存储过程的问题
- Ext中FormPanel数据显示的问题,高手帮忙下
- 有关 myeclipse 下 herbinate + oracle
- 能否把<bean:write name="name">的值赋给一个变量?
- 原来用tomcate的OA如何移植到weblogic开发
- myeclipse5.1.1+jboss4.0.5开发j2ee的问题!
- spring hibernate sessionfactory
- 请问,如何把字符串的 制表符 去掉 (例如: 回车 。tab建 等等)
- 关于java反射机制的一个问题
- 如何把int转化成string类型
- struts2上传文件时拦截器不起作用
- jdbc高手请指点复杂的插入问题
//Java代码:
public class MtvColumnAction extends ActionSupport implements
ServletRequestAware, ModelDriven <MtvColumn> {
......
public String addColumn() throws Exception {
......
boolean flag = mtvColumnService.save(column);
String result = "";
if(flag){
copy(picFile, imageFile);
result = "添加栏目信息成功!";
}
request.setAttribute("result", result);
request.setAttribute("sign", "add_column");
return "operationColumn";
}
.....
}//struts.xml配置文件:
<action name="columnInfo_*"
class="com.gzmobile.action.MtvColumnAction" method="{1}">
<param name="savePath">/pic </param>
<param name="businessName1">热榜明星面对面 </param>
<param name="businessName2">精品视频火热推荐 </param>
<param name="businessName3">美乐盛典 </param>
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,image/jpg </param>
<param name="maximumSize">10240000 </param>
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
.....
</action>
......
<action name="resourceInfo_*"
class="com.gzmobile.action.MtvResourceAction" method="{1}">
<param name="picPath">/pic </param>
<param name="videoPath">/video </param>
<param name="businessName1">热榜明星面对面 </param>
<param name="businessName2">精品视频火热推荐 </param>
<param name="businessName3">美乐盛典 </param>
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,video/quicktime,audio/mpeg,image/jpg,text/plain,application/octet-stream,video/3gpp </param>
<param name="maximumSize">20971520 </param> <!-- 20M -->
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
......
</action>//struts.properties配置,已转码
struts.ui.theme=simple
struts.i18n.encoding=utf-8
struts.action.extension=htm
struts.multipart.saveDir=d:/tmp
struts.objectFactory = spring
struts.messages.error.content.type.not.allowed=\u4e0a\u4f20\u7684\u6587\u4ef6\u7c7b\u578b\u53ea\u80fd\u662f\u56fe\u7247\u6587\u4ef6\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9\uff01
struts.messages.error.file.too.large=\u60a8\u8981\u4e0a\u4f20\u7684\u6587\u4ef6\u592a\u5927\uff0c\u8bf7\u91cd\u65b0\u9009\u62e9\uff01
struts.messages.error.uploading=\u60a8\u8981\u4e0a\u4f20\u7684\u5185\u5bb9\u5931\u8d25\uff01
//上传的网页
<s:form action="columnInfo_addColumn" enctype="multipart/form-data" name="uploadform">
...... <tr>
<td width="15%" align="center" bgcolor="E4EDF9" class="normalText">LOGO图片 </td>
........
<tr bgcolor="#FFFFFF" >
<td colspan="2" align="center" bgcolor="#95CAFF"> <s:submit value=" 添加 " cssClass="button" /> </td>
</tr>
</s:form>
<tr bgcolor="#FFFFFF" >
<td colspan="2" align="center" bgcolor="#95CAFF"> <s:fielderror/> </td>
</tr>上传图片时,如果图片大小超过2097152时,就会出现如下错误:
ERROR org.apache.struts2.interceptor.FileUploadInterceptor - #com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error(CommonsLogger.java:23)# - the request was rejected because its size (2744965) exceeds the configured maximum (2097152)问题有如下:
1、该应用中,我上传图片时,要找的action是name="columnInfo_*",而且我配置是 <param name="maximumSize">10240000 </param>,为什么maximum不是10240000,而是2097152
2、假如找的action是name="resourceInfo_*",而 <param name="maximumSize">20971520 </param>,但为什么出错时,maximum是2097152,而不是20971520
3、当图片过大时,为什么无法在页面 <td colspan="2" align="center" bgcolor="#95CAFF"> <s:fielderror/> </td>
上没错误信息输出,即struts.messages.error.file.too.large信息没输出。望高人指点,小弟谢先了! [/Quote]
<constant name="struts.multipart.maxSize" value="20000000"/>
好像从写struts.properties也可以实现
在我开发的系统中,有两个应用程序要上传文件,两个应用程序要限制的大小和类型不一样,所以我就直接分开来。
一个是:
<action name="columnInfo_*"
class="com.gzmobile.action.MtvColumnAction" method="{1}">
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,image/jpg </param>
<param name="maximumSize">10240000 </param>
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
另一个是:
<action name="resourceInfo_*"
class="com.gzmobile.action.MtvResourceAction" method="{1}">
<interceptor-ref name ="fileUpload">
<param name ="allowedTypes">image/bmp,image/png,image/gif,image/pjpeg,video/quicktime,audio/mpeg,image/jpg,text/plain,application/octet-stream,video/3gpp </param>
<param name="maximumSize">20971520 </param> <!-- 20M -->
</interceptor-ref>
<interceptor-ref name ="defaultStack"/>
楼上的方法是在整个应用系统中,每个上传应用程序限制的大小都统一的,对吗?
然后在你各自的上传ACTION配制中加入你写好的<param name="maximumSize">5242880</param>就可以了。注意:name是“struts.multipart.maxSize”而不是“struts.multipart.maxsize”
<constant name="struts.multipart.maxSize" value="10485760" />
<action name="ExcelUpload" class="com.cim.base.action.ExcelUploadAction">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">application/excel,application/vnd.ms-excel</param>
<param name="maximumSize">5242880</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
<param name="savePath">/uploadFiles/temp</param>
<result name="input">jsp/flow/ExcelUpload.jsp</result>
</action>允许5M,5M到10M之间会正常提示文件过大,超过10M报错!
struts.xml里面配置这个就可以了吧