- 浏览: 272948 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
han2000lei:
问题已解决,见下面代码
public void validat ...
一个关于struts2上传文件超过限制大小如何提示的问题 -
liuxuejin:
你好,我想请教你一个问题,我们打算开发一个BS架构的卖家服务应 ...
淘宝API开发ISV订购页面必看 -
andey007518:
properties文件直接放到src路径下,
Propert ...
java读取properties配置文件 -
dove19900520:
朋友,你这个支持群发吗?为什么我按照你的写法来了改了一下,做成 ...
javamail发送邮件 -
emengbingkuai:
终于找到了
javascript中获取某月的天数
问题描述:
在使用struts2中上传文件时,在框架中本身给我们设置了一个限制大小。如果上传的文件超过这个大小,在拦截器中就返回了,并且这个错误提示是系统内置的,放在Action级别的Error当中。这个错误非常不友好,需要我们自己替换掉。下面的代码做到了,但出现了一个问题,看看哪位能够解决掉?
1、首先先说如何解决掉系统内置的ActionError,就是重写addActionError方法(见下面代码中)。
2、下面,问题出现了:我有一个验证方法,防止所有内容为空的验证,方法名见下面代码中validateAuthImgUpload方法(这是一个多动作控制器的验证),在这个方法当中判断页面的内容为空时,添加一个addActionError信息。这时,按上面的前提,文件上传时超出了系统的大小限制,拦截器拦截之后,将我修改的后的友好的提示放了进去,同时,它还将所有的提交的页面的内容置空了。然后又添加了validateAuthImgUpload方法的ActionError进去(这个地方我不明白,为什么validateAuthImgUpload方法能够执行,拦截中有错误了,按说是不执行了才对,但它的确是将这个方法当中的错误信息放进了ActionError当中),这时加上第一个错误,就有两个错误了,在页面一下子就显示出两个错误提示给用户,这种提示是不对的,哪位大侠能帮忙解决?
在使用struts2中上传文件时,在框架中本身给我们设置了一个限制大小。如果上传的文件超过这个大小,在拦截器中就返回了,并且这个错误提示是系统内置的,放在Action级别的Error当中。这个错误非常不友好,需要我们自己替换掉。下面的代码做到了,但出现了一个问题,看看哪位能够解决掉?
1、首先先说如何解决掉系统内置的ActionError,就是重写addActionError方法(见下面代码中)。
2、下面,问题出现了:我有一个验证方法,防止所有内容为空的验证,方法名见下面代码中validateAuthImgUpload方法(这是一个多动作控制器的验证),在这个方法当中判断页面的内容为空时,添加一个addActionError信息。这时,按上面的前提,文件上传时超出了系统的大小限制,拦截器拦截之后,将我修改的后的友好的提示放了进去,同时,它还将所有的提交的页面的内容置空了。然后又添加了validateAuthImgUpload方法的ActionError进去(这个地方我不明白,为什么validateAuthImgUpload方法能够执行,拦截中有错误了,按说是不执行了才对,但它的确是将这个方法当中的错误信息放进了ActionError当中),这时加上第一个错误,就有两个错误了,在页面一下子就显示出两个错误提示给用户,这种提示是不对的,哪位大侠能帮忙解决?
package com.test.action; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.FileCopyUtils; import com.test.service.impl.PicUpLoadImpl; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class PicUpAction extends ActionSupport { Logger logger = LoggerFactory.getLogger(PicUpAction.class); private PicUpLoadImpl picUpLoad; private String picName; private File pic; private String picFileName; private String picContentType; public void setPicUpLoad(PicUpLoadImpl picUpLoad) { this.picUpLoad = picUpLoad; } public String getPicName() { return picName; } public void setPicName(String picName) { this.picName = picName; } public File getPic() { return pic; } public void setPic(File pic) { this.pic = pic; } public String getPicFileName() { return picFileName; } public void setPicFileName(String picFileName) { this.picFileName = picFileName; } public String getpicContentType() { return picContentType; } public void setpicContentType(String picContentType) { this.picContentType = picContentType; } /* * 上传验证码图片 * @param */ public String authImgUpload() { InputStream picStream; byte[] byt = new byte[0]; try { picStream = new FileInputStream(pic); byt = FileCopyUtils.copyToByteArray(picStream); picStream.close(); if(byt.length>1048576){ this.clearActionErrors(); this.addActionError("上传图片超过1M大小限制"); return "input"; } } catch (FileNotFoundException e1) { this.clearActionErrors(); this.addActionError("上传文件没有找到,正确选择文件"); logger.error("上传的文件没有找到"+e1.getMessage()); } catch (IOException e) { this.clearActionErrors(); this.addActionError("IO Exception"); logger.error("上传文件读取错误"+e.getMessage()); } int flag = this.picUpLoad.upload("", picName, byt); if(flag==1){ return "authimgupok"; }else{ return ActionSupport.INPUT; } } public void validateAuthImgUpload() {//validate()验证方法 if("".equals(picName)|| picName==null||pic == null){//验证不能为空 // this.clearActionErrors();//这个地方清也不对,不清也不对 this.addActionError("请输入图片名称并选择上传文件"); }else{ String fileName = this.getPicFileName();//取到文件名 int index = fileName.indexOf(".");//找到点号,准备取后缀名 String fix = fileName.substring(index+1); if(!("jpg".equals(fix)||"png".equals(fix)||"bmp".equals(fix)||"gif".equals(fix))){ this.clearActionErrors(); this.addActionError("图片只能是 gif/jpg/png/bmp 格式"); } } } @Override public void addActionError(String anErrorMessage) {//这个是重写的addActionError的方法,去掉系统的提示,使用自已的 if(anErrorMessage.startsWith("Request exceeded allowed size limit")){ super.addActionError("上传图片超过1M大小限制"); }else{ super.addActionError(anErrorMessage); } } }
评论
1 楼
han2000lei
2015-07-20
问题已解决,见下面代码
public void validateAuthImgUpload() { if("".equals(picName)|| picName==null||pic == null){//验证不能为空 if(!this.hasActionErrors()){]//加入判断,如果不为空,说明拦截器当中有错误了,就不再执行这部分,这部分就显示不出来了 this.addActionError("请输入图片名称并选择上传文件"); } }else{ String fileName = this.getPicFileName();//取到文件名 int index = fileName.indexOf(".");//找到点号,准备取后缀名 String fix = fileName.substring(index+1); if(!("jpg".equals(fix)||"png".equals(fix)||"bmp".equals(fix)||"gif".equals(fix))){ this.clearActionErrors(); this.addActionError("图片只能是 gif/jpg/png/bmp 格式"); } } }
发表评论
-
Spring
2015-04-09 13:30 0spring与mybatis整合地址: http://w ... -
json的介绍(三)----json在java的使用
2012-12-05 14:20 1338在java中,常使用JSON-LIB,首先要有几个支持的包 j ... -
MyEclipse6.0 MyEclise9.0插件版下载合集
2012-11-21 17:03 2452本人制作了MyEclispse6.0及MyEclispse9. ... -
MyEclipse想说爱你不容易(写于2012-11-18)
2012-11-19 11:20 9568对于java的开发人员人来,eclipse与MyE ... -
MyEclipse 8.5 M1 下载合集-包含window,linux,Mac版
2011-01-30 22:15 5957MyEclipse 8.0GA发布后,MyEclipse官方并 ... -
MyEclipse 8.0 GA 下载合集-包含window,linux,Mac版
2011-01-30 22:13 2149MyEclipse官方放出了最新版本的MyEclipse 8 ... -
ajax在ie与firfox的乱码解决
2009-07-17 17:56 1722今天做网站时,使用ajax,传入action的编码,在ie中传 ... -
java.util.Date与java.util.Calendar
2009-07-15 17:01 0究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我 ... -
eclipse中编码设置
2009-06-03 20:35 3295在使用eclipse+MyEclipse开 ... -
java读取properties配置文件
2009-05-01 20:01 77822今天要将以前一个项目的数据连接改成从properties文件中 ... -
解决Netbeans导入文件乱码问题
2009-04-28 23:25 19881.找到你的Netbeans安装目录下的etc文件夹,如C:\ ... -
首页数据加载
2009-04-27 03:19 11041、配置web.xml。欢迎页面为随便的一页面,不要配置为in ... -
netbeans快捷键
2009-04-26 23:53 2225最近使用netbeans,发现还 ... -
myeclipse7.0插件安装
2009-04-21 11:22 4250最近用的myeclipse7.1,需要安装一些插件,于 ... -
大幅优化myeclipse的速度
2009-04-19 11:07 47341、去除不需要加载的模块 一个系统20%的功能往往能够满 ... -
log4j中使用相对路径
2009-04-11 11:25 4610很多朋友想把日志写在web应用当中,下面来介绍一下: log4 ... -
JavaMail的编码问题
2009-03-25 16:17 1894在使用javamail api开发邮件服务系统时,我们常常会碰 ... -
javamail发送邮件
2009-03-21 16:55 10665今天学习了一下JavaMail,javamail发送邮件确实是 ... -
Helma中的Filter
2009-02-16 09:07 0<div class="iteye-blog- ... -
json的介绍(一)----json的格式
2009-01-12 13:21 2118要使用json来传输数据,必须将所承载的数据转换成j ...
相关推荐
struts文件上传大小限制问题struts文件上传大小限制问题struts文件上传大小限制问题struts文件上传大小限制问题
struts+spring文件上传大小限制 所以不设资源分,可以自由下载
struts文件上传大小限制,对大小进行限制以及常见错误
使用struts2框架进行文件的上传并限制文件的大小与类型,使用struts2框架实现文件下载
NULL 博文链接:https://hongyabing.iteye.com/blog/1617748
用struts2实现的文件上传,带文件类型验证,大小限制,都是可以配置的,具体看你怎么配置了!
NULL 博文链接:https://yongjie.iteye.com/blog/792673
3) 修改服务器端可上传文件大小的限制 在文件 usr local nginx conf nginx conf中修改client max body size 毕竟是第一次用 不是很熟悉 希望有人发现问题可以交流一下">这是根据uploadify3 2结合struts2搭建的...
struts1.2上传图片源代码(包含检查文件格式、限制文件大小功能); 已经做成成品,成功运行于项目之中
主要介绍了Struts2修改上传文件大小限制的相关内容,包括决定Struts2上传文件大小的因素,具有一定参考价值,需要的朋友可以了解下。
11.限制上传文件的大小与演示超限后的问题 12.深入分析上传文件超限后的问题原因 13.上传文件超限后的编程处理 14.多文件上传的问题及论坛项目的评论 15.修正从配置文件中读取文件存储目录的缺陷
11.限制上传文件的大小与演示超限后的问题 12.深入分析上传文件超限后的问题原因 13.上传文件超限后的编程处理 14.多文件上传的问题及论坛项目的评论 15.修正从配置文件中读取文件存储目录的缺陷
可直接运行,包含jar文件,struts2 图片上传,图片大小,图片格式的限制,客户端文件类型判断等
实现了Struts2对于单个文件的上传功能,限制了上传文件的大小以及上传的类型。下载就可以直接运行。
COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的...
Struts2文件上传部分,包含文件上传和多文件上传,以及限制上传文件的大小和类型。。 。
使用struts2.0上传文件,完全解决了中文乱码问题。运行项目前请先在D盘建立个名tmp的文件夹,实例上传的文件将保存在tmp文件夹中。文件大小限制为15M,该示例蛮完整的,有些架包忘删了导致项目有点大。
实现控制文件的大小,格式,自动转换文件名
官网下的Struts2最新版,验证可用。但由于上传文件大小限制,资源分为2次上传。下载struts-2.3.14-all(1)后,要下载struts-2.3.14-all(2),并将里面的文件夹放一起才可以用。
有大小 文件类型限制 代码注释齐全 基本都能看懂