<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. Nginx vs Apache--reference

    May 14th, 2014 - By Walker Rowe https://anturis.com/blog/nginx-vs-apache/ What is the Nginx web and ...

  2. android智能天气闹钟应用开发经过

    开发这个应用的初衷是这样产生滴,和我一块租房的同学每天早上都是骑单车上班,所以手机闹钟就会定一个刚好适合骑车的起床时间点.但是呢,有一天早上起床以后发现外面下挺大雨,肯定是不能骑车去上班了,于是就只好 ...

  3. 在命令行中如何访问Program Files文件夹(转)

    通常来说Program Files文件夹位于C盘,也就是C:\Program File.为了保证兼容性,在命令行中通常使用环境变量%ProgramFiles%来表示Program Files的具体路径 ...

  4. CentOS 6.7安装Java JDK

    1.下载Java JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...

  5. ASP.NET 资料下载

    public void downloadfile(string s_fileName) { HttpContext.Current.Response.ContentType = "appli ...

  6. 更多隐式Intent用法

    上几篇无论是显示的Intent或者隐式的Intent,都是要跳转的自己添加指定的页面,如果想要跳转到百度首页或者跳转到联系人面板等,前面的知识显然是很不实用的.这里,将要针对其它的一些Intent用法 ...

  7. POJ-3278(BFS)

    题目:                                                                                                 ...

  8. Vector使用

    ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 Vector 类提供了实现可增长数组的功能,随着更多元素加入其中,数组变的更大.在删除一些元素之 ...

  9. H TML5 之 (2) 小试牛刀

    基本的HTML都认识到了,就开始运用下了,大的程序的开始,都是从一个一个表达式慢慢的堆积起来的 想开始玩HTML5,就开始理解,它所提供的画布函数各有什么作用,API的具体使用,才能完成自己想要完成的 ...

  10. CSS jQuery HTML5 CSS3

    jquery css3图片文字介绍鼠标滚动页面动画单页 http://www.17sucai.com/preview/1/2013-12-30/%E5%8A%A8%E7%94%BB%E5%8D%95% ...