如何在struts2中判断上传的文件大小,如果超出了设定值(比如10M),就返回到错误页面,并提示

我说的是在上传文件的action中判断,不是在struts.xml配置<constantname="struts.multipart.maxSize"value="104... 我说的是在上传文件的action中判断,不是在struts.xml配置<constant name="struts.multipart.maxSize" value="10485760"/> 这样的话只是出异常,而没有友好提示 展开
 我来答
爱上一只狐
2013-02-27
知道答主
回答量:12
采纳率:0%
帮助的人:6.1万
展开全部
一般会在你的上传action再配置一个拦截器,例如:
<action name="uploadBatchDatas" method="uploadBatchDatas" class="DataAction" >
<interceptor-ref name="fileUpload">
<!-- 文件过滤 -->
<param name="allowedTypes">text/plain</param>
<!-- 文件大小, 以字节为单位 -->
<param name="maximumSize">2097152</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
<result name="success">/datamanage/batch-datas-upload.jsp</result>
</action>
这个maximumSize是你的文件的大小,这个大小不能大于constant里面的值,也就是说,这个是只针对这一个action的,而constant中的是全部文件的,
当文件上传的时候,会先经过拦截器,拦截器会根据我们设置的这些param去判断是否符合,如果不符合会直接给出英文版的提示加到erraction中,而不往下进行了,直接进不去你的action了,所以你想友好提示,1)自己写拦截器,2)修改现有的类,改成中文提示,3)使用其它的上传jar,听说有个cos的,你可以查一下
0751129
2011-05-01 · TA获得超过247个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:139万
展开全部
我记得struts2文件上传会自动将上传文件保存在一个File对象里的吧。直接用file.length()应该就能判断了吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hao32863
2011-05-01 · TA获得超过299个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:140万
展开全部
如果你用的是FormFile的话,直接用FormFile.getData()就可以得到字节数组,然后判断大小就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嘻哈IT
2011-05-01 · TA获得超过422个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:57.8万
展开全部
将上传的文件转为byte[] 数据,然后设定byte数据的大小,然后进行判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厉害了我手足哥
2018-04-08
知道答主
回答量:1
采纳率:0%
帮助的人:862
展开全部
同问,首先文件大小会被拦截器先拦下来做maxsize校验,如果大于该值就直接抛异常了不会走到自己的action,要如何才能走到自己的action校验,或者能给出友好提示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式