struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/pjpeg</param>
<!-- 图片不能大于5M -->
<param name="maximumSize">5242880</param> </interceptor-ref>
<package name="upload2" extends="struts-default">
<action name="upload2" class="com.ljq.action.UploadAction2" method="execute">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
<param name="allowedExtensions">png,jpg,xml,txt</param>
<!-- 文件大小, 以字节为单位 -->
<param name="maximumSize">10259560</param></pre>
</interceptor-ref> <!-- 默认拦截器必须放在fileUpload之后,否则无效 -->
<interceptor-ref name="defaultStack" />
<result name="success">/WEB-INF/page/message.jsp</result>
<result name="input">/upload/upload.jsp</result>
</action>
</package>
文件上传的拦截器中的三个参数
maximumSize------>限制上传文件的最大size,默认的是2M 注意:这里的2M指的是struts.multipart.maxSize的值,而并非是maximumSize
allowedTypes ------>对上传的文件过滤,即设置文件的类型
allowedExtensions-->也是对文件的过滤,设置文件的后缀名
问题:
1,当设置文件的不能大于5M,但是上传2M以上的图片直接出错跳转input;
解决办法:
<!-- 整个项目所上传文件的最大的Size --> <constant name="struts.multipart.maxSize" value="9000000"/>;
a.struts.multipart.maxSize掌控整个项目所上传文件的最大的Size。超过了这个size,后台报错,程序处理不了如此大的文件。fielderror里面会有如下的提示: the request was rejected because its size (16272982) exceeds the configured maximum (9000000)
b.fileUpload拦截器的maximumSize属性必须小于struts.multipart.maxSize的值。 struts.multipart.maxSize默认2M,当maximumSize大于2M时,必须设置struts.multipart.maxSize的值大于maximumSize。<!—这一条最重要,很容易忽略—>
注意:在使用constant设置文件上传的大小时,value不能使用如10M写成1024*1024*10,这样是不允许的,但在拦截器中可以这样写
c.当上传的文件大于struts.multipart.maxSize时,系统报错 当上传的文件在struts.multipart.maxSize和maximumSize之间时,系统提示上传成功!
问题:
2,在对文件进行过滤时,出现设置文件的类型后,设置了文件的后缀名,后者设置无效
解决办法:
使用”文件类型“和”文件后缀名“两者中的一个来控制上传文件的类型/后缀名。但是,allowedTypes的优先级别高于allowedExtensions,
如果配置了allowedTypes则allowedExtensions将不再起效
利用allowedExtensions参数来控制上传文件的后缀名,则不能配置allowedTypes参数。
否则,如果allowedTypes参数有配置,那么allowedExtensions参数将不会再起效。
struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题的更多相关文章
- struts文件上传拦截器分析
struts有默认的文件拦截器,一般配置maximumSize就可以了. 知道原理,我们可以写一个类继承它,实现自己的配置上传文件大小的方式. 然后细究页面上传文件的时候,发现了一些问题. act ...
- struts文件上传拦截器maximumSize设置文件大小不起作用
<interceptor-ref name="fileUpload"> <param name="allowedTypes ...
- SpringMVC 文件上传&拦截器&异常处理
文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...
- Java Struts文件上传和下载详解
Struts2文件上传 Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的 ...
- Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”
Struts的文件上传问题,相信很多人都会使用allowedTypes参数来配置允许上传的文件类型,如下. <param name="allowedTypes"> im ...
- struts——文件上传
上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能.今天我们就一起来学习一下Struts2如何上传文件. 今天讲的上传文件的方式有三种: 1,以字节为单位传输文件: 2,Struts2封 ...
- springMVC整理04--文件上传 & 拦截器 & 异常处理
1. 文件上传 SpringMVC 的文件上传非常简便,首先导入文件上传依赖的 jar: <!-- 文件上传所依赖的 jar 包 --> <dependency> <g ...
- struts文件上传——文件过大时错误提示的配置问题说明
开始只在struts.xml文件中加入以下配置 <constant name="struts.multipart.maxSize" value="10000&quo ...
- struts文件上传,获取文件名和文件类型
struts文件上传,获取文件名和文件类型 Action中还有两个属 性:uploadFileName和uploadContentType,这两个属性分别用于封装上传文件的文件名.文件类型.这是S ...
随机推荐
- hdu2091JAVA
空心三角形 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- java Map使用Object 做为Key的问题
近期在看dnsjava 源码的时候,不经意间发现一个自己没有想过的问题: HashMap 如何使用key去查找对应的value的,这个问题很难用语言描述的清楚,那就使用代码来进行说明吧! public ...
- GetTickCount() 函数的作用和用法
今天项目中60秒倒计时模块需要用到GetTickCount(),这个函数,在此做下整理和总结. 1.定义 For Release configurations, this function retur ...
- Android(java)学习笔记190:Eclipse中的控制台不停报错Can't bind to local 8700 for debugger
[DDMS] Can't bind to local 8600 for debugger 改成 Under Window -> Preferences -> Android -> D ...
- Oracle中not exists 与not in 的使用情况
1.在oracle11g以上版本,oracle已经做了优化,能够自动将in优化成exists方式,因此oracle11g以上版本,使用in和exists效果是一样的. 2.在oracle中,使用not ...
- jquery easyui textbox onblur事件,textbox blur事件无效解决方案
jquery easyui textbox onblur事件,textbox blur事件无效解决方案 >>>>>>>>>>>> ...
- Visual Studio小技巧
换了台电脑后打开解决方案后所有项目都是展开状态,每天工作的第一件事情就是把他们都折起来,感觉好麻烦. 百度了一阵子没找到相关的问题,还一度怀疑是不是我自己的VS有问题. 但是其它解决方案没有这种情况, ...
- php 计算一个字符串在另一个字符串中出现的次数
<?php $text = 'This is a test'; echo strlen($text); // 14 echo substr_count($text, 'is'); // 2 // ...
- Spring JdbcTemplate批量操作数据库
个人总结,转载请注明出处:http://www.cnblogs.com/lidabnu/p/5769732.html 还是分两部分:解决什么问题和怎么做. 解决什么问题 提升数据操作性能,因为批量操作 ...
- 前台添加jquery的引用
注意引用的顺序. 以下两个引用,因为bxCarousel.js引用了jquery.js所以jquery.js必须在bxCarousel.js的前面.一般来说对jquery.js的引用放在前面. < ...