<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)问题的更多相关文章

  1. struts文件上传拦截器分析

    struts有默认的文件拦截器,一般配置maximumSize就可以了. 知道原理,我们可以写一个类继承它,实现自己的配置上传文件大小的方式.   然后细究页面上传文件的时候,发现了一些问题. act ...

  2. struts文件上传拦截器maximumSize设置文件大小不起作用

    <interceptor-ref name="fileUpload">                <param name="allowedTypes ...

  3. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  4. Java Struts文件上传和下载详解

    Struts2文件上传 Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的 ...

  5. Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”

    Struts的文件上传问题,相信很多人都会使用allowedTypes参数来配置允许上传的文件类型,如下. <param name="allowedTypes"> im ...

  6. struts——文件上传

    上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能.今天我们就一起来学习一下Struts2如何上传文件. 今天讲的上传文件的方式有三种: 1,以字节为单位传输文件: 2,Struts2封 ...

  7. springMVC整理04--文件上传 & 拦截器 & 异常处理

    1.  文件上传 SpringMVC 的文件上传非常简便,首先导入文件上传依赖的 jar: <!-- 文件上传所依赖的 jar 包 --> <dependency> <g ...

  8. struts文件上传——文件过大时错误提示的配置问题说明

    开始只在struts.xml文件中加入以下配置 <constant name="struts.multipart.maxSize" value="10000&quo ...

  9. struts文件上传,获取文件名和文件类型

    struts文件上传,获取文件名和文件类型   Action中还有两个属 性:uploadFileName和uploadContentType,这两个属性分别用于封装上传文件的文件名.文件类型.这是S ...

随机推荐

  1. android开发:@SuppressLint( NewApi )

    这个是android带的lint工具提示的,lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,如果不想用的话,可以右键点工程,然后在androi ...

  2. 查看源码Vim+Cscope

    http://blog.csdn.net/huiguixian/article/details/7044869

  3. hibernate之.hbm.xml文件内容相关参数说明

    1.<id> 表示主键,下面介绍主键的生成机制 Increment: 由hibernate自动以递增的方式生成表识符,每次增量为1 Identity:由底层数据库生成表识符.条件是数据库支 ...

  4. Unity monodev环境搭建

    断点调试功能可谓是程序员必备的功能了.Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调试的.不过这个断点调试功能只限于使用Unity3D自带的MonoD ...

  5. iOS在xib或storyboard里为控件添加圆角、外框和外框颜色

    如果要在xib和storyboard里为控件添加圆角和外框宽度,只要这样做就可以: layer.borderWidth 设置外框宽度属性 layer.cornerRadius 设置圆角属性 只要为属性 ...

  6. 功能模块图、业务流程图、处理流程图、ER图,数据库表图(概念模型和物理模型)画法

    如果你能使用计算机规范画出以下几种图,那么恭喜你,你在我这里被封为学霸了,我膜拜ing-- 我作为前端开发与产品经理打交道已有5-6年时间,产品经理画的业务流程图我看过很多.于是百度搜+凭以往经验脑补 ...

  7. linux tar 压缩解压缩

    解压 .tar.bz tar zxvf file.tar.gz .tar.gz2 tar jxvf file.tar.bz2 .bz gzip -d file.bz .gz2 bzip2 -d fil ...

  8. mac下通过docker搭建LEMP环境

    在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...

  9. 40多个非常有用的Oracle 查询语句

    给大家介绍是40多个非常有用的Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有Oracle 开发者都必备的技能,所以快快收藏吧! 日期 ...

  10. 爆牙齿的 Web 标准面试题 【转藏】

    <!DOCTYPE html> <html lang="zh-CN"><head> <meta http-equiv="cont ...