Struts文件上传allowedTypes/allowedExtensions问题
2014-03-05 23:31
423 查看
最近做SSH项目要实现文件上传的功能于是就用到了Struts2中的拦截器对文件的大小和类型进行筛选,我要求用户只能上传图片格式的文件,于是在struts.xml中使用了以下代码:
结果发现每次从jsp页面上传总是会跳到name="input"的result中,让我很是头疼。我就试着把拦截器中的两行参数注释掉,代码如下:
果然可以上传成功了。接着我进一步分别注掉这两行,看出还是限制文件类型那一行出了问题。在网上查了另外一种写法,代码如下:
依旧行不通。。。没办法,既然限制文件类型总是不好使那我只能换另一种方式:设置允许上传的文件后缀名
设置上传的文件后缀名要用到name="allowedExtensions"这个参数,代码如下:
<package name="upload2" extends="struts-default"> <action name="upload2" class="com.ljq.action.UploadAction2" method="execute"> <!-- 动态设置savePath的属性值 --> <param name="savePath">/images</param> <result name="success">/WEB-INF/page/message.jsp</result> <result name="input">/upload/upload.jsp</result> <interceptor-ref name="fileUpload"> <!-- 文件过滤 --> <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param> <!-- 文件大小, 以字节为单位 --> <param name="maximumSize">1025956</param></interceptor-ref> <!-- 默认拦截器必须放在fileUpload之后,否则无效 --> <interceptor-ref name="defaultStack" /> </action> </package>
结果发现每次从jsp页面上传总是会跳到name="input"的result中,让我很是头疼。我就试着把拦截器中的两行参数注释掉,代码如下:
<!-- 文件过滤 --> <!-- <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param> --> <!-- 文件大小, 以字节为单位 --> <!-- <param name="maximumSize">1025956</param> -->
果然可以上传成功了。接着我进一步分别注掉这两行,看出还是限制文件类型那一行出了问题。在网上查了另外一种写法,代码如下:
<param name="allowedTypes">image/bmp,image/x-png,image/gif,image/pjpeg</param>
依旧行不通。。。没办法,既然限制文件类型总是不好使那我只能换另一种方式:设置允许上传的文件后缀名
设置上传的文件后缀名要用到name="allowedExtensions"这个参数,代码如下:
<!-- 允许后缀名为png,bmp,jpg的文件上传 --> <param name="allowedExtensions"> png,bmp,jpg </param>运行成功!虽然问题算是解决了,但是还是没弄明白为什么用name="allowedTypes"这个参数不好用,希望有明白的高手予以解答,不胜感激!
相关文章推荐
- codeigniter文件上传时$config["allowed_types"]设置问题
- Struts1.2文件上传注意的问题
- struts 上传文件乱码问题解决方法
- struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题
- Struts 1.3.10 上传文件时发生问题。1.3.8,1.2.9没有类似问题
- struts文件上传以及中文乱码问题
- Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”
- Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”
- struts文件上传和遇到的问题
- Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”
- Mysq无法上传大于1M文件的问题, max_allowed_packet
- kindeditor与struts整合文件上传问题
- struts 2 的 上传文件问题
- struts文件上传和遇到的问题
- 在LINUX下,struts 2 文件上传路径问题
- struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file") 是null的问题分析
- 再问struts多文件上传的问题
- 解决struts1上传超大文件引起的宕机问题
- Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”
- 在LINUX下,struts 2 文件上传路径问题