1. 配置Struts2能够上传的最大文件大小

使用Struts2进行文件上传的时候,Struts2默认文件大小最大为2MB,如果要传大一点的文件,就需要修改struts.xml配置文件,重新设置能够上传的最大的文件大小。配置文件如下:

<struts>
<!-- Struts2全局配置 -->
<constant name="struts.action.extension" value="whtml"/>
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.custom.i18n.resources" value="messages"/>
<constant name="struts.i18n.encoding" value="UTF-8"/>
<constant name="struts.objectFactory" value="spring"/>
<constant name="struts.objectFactory.spring.autoWire" value="name"/>
<constant name="struts.objectFactory.spring.useClassCache" value="true"/>
<!-- 修改上传的最大文件大小:10MB -->
<constant name="struts.multipart.maxSize" value="10485760"/> <!-- 他包都会继承my-json,返回JSON数据 -->
<package name="my-json" namespace="/" extends="json-default">
<!-- Struts2拦截器,用户身份认证 -->
<interceptors>
<interceptor name="sessionInterceptor" class="com.hanvon.iface.web.interceptor.SessionInterceptor"/>
<interceptor-stack name="securityStack">
<interceptor-ref name="sessionInterceptor"/>
<interceptor-ref name="json"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors> <!-- 设置默认的拦截器栈:拦截所有动作 -->
<default-interceptor-ref name="securityStack"/> <!-- 全局results -->
<global-results>
<result name="input">/login.html</result>
<result name="success">/index.html</result>
<result name="notLoginError" type="redirect">/notLogin.whtml</result>
<!-- 返回JSON数据类型 -->
<result name="JSON_RESULT" type="json">
<!-- 指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
<param name="root">jsonResult</param>
</result>
</global-results>
</package> <!-- 添加外部配置文件 -->
<include file="struts/userAction.xml"/>
<include file="struts/loginAction.xml"/>
</struts>

注意配置行:<constant name="struts.multipart.maxSize" value="10485760"/>  这个就是设置最大文件大小的,单位是:B(Byte)。

2.为Action添加文件上传参数

HTML或者JSP页面添加文件控件:<input type="file" name="imgFile" />

这里控件命名为:imgFile

结下来就是在Struts2的Action中添加对象的属性来接受文件:

Struts2约定的属性名字有三个,如下:

private File imgFile; //这个是控件的name,你自己命名

private String imgFileFileName;  //这个是文件名,Struts2会自动处理,按照Struts2约定命名即可

private String imgFileContentType; //这个是文件类型,如 image/jpg,按照Struts2约定命名即可

对于“***FileName”和“***ContentType”两个字段,Struts2会自动传递并赋值,当然你可以不设置这2个字段。

注意:通过imgFile.getFileName() 得到的文件名是 ****.tmp这样的临时文件,无法判断文件类型,因此,如果要判断文件类型,还是需要这两个字段的。

下面给出一段判断图片类型的代码:

/** 检测是否是图片文件 */
private boolean isImageFile() {
boolean isImage = false;
String[] imgExts = {".gif", ".jpg", ".jpeg",".bmp", ".png"};
for(String ext : imgExts) {
if(imgFileFileName.toLowerCase().endsWith(ext)) {
isImage = true;
}
} return isImage;
}

判断文件大小:imgFile.length()获取到的就是文件的大小,单位是B(Byte)

long length = imgFile.length();

String msg = "您上传的文件大小为:" + (length / 1024)+ "KB";

Struts2图片文件上传,判断图片格式和图片大小的更多相关文章

  1. PHP图片文件上传类型限制扩展名限制大小限制与自动检测目录创建。

    程序测试网址:http://blog.z88j.com/fileuploadexample/index.html 代码分为两部分: 一部分form表单: <!doctype html> & ...

  2. SpringMvc MultipartFile 图片文件上传

    spring-servlet.xml <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipar ...

  3. springmvc图片文件上传接口

    springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...

  4. .Net Core 图片文件上传下载

    当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...

  5. jsp\struts1.2\struts2 中文件上传(转)

    jsp\struts1.2\struts2 中文件上传 a.在jsp中简单利用Commons-fileupload组件实现 b.在struts1.2中实现c.在sturts2中实现现在把Code与大家 ...

  6. Struts2 多文件上传

    Struts2多文件上传只需要将 单文件上传中的File变成File[]  即可,上篇文章:单文件上传 <form action="${pageContext.request.cont ...

  7. Struts2单文件上传原理及示例

    一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里 ...

  8. 【SSH网上商城项目实战13】Struts2实现文件上传功能

    转自:https://blog.csdn.net/eson_15/article/details/51366384 上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细 ...

  9. Struts2笔记--文件上传

    Servlet 3.0规范的HttpServletRequest已经提供了方法来处理文件上传但这种上传需要在Servlet中完成.而Struts2则提供了更简单的封装. Struts2默认使用的是Ja ...

随机推荐

  1. Codeforces Round #254 (Div. 2) DZY Loves Chemistry【并查集基础】

    一开始不知道题意是啥意思,迟放进去反应和后放进去反应有什么区别 对于第三组数据不是很懂,为啥312,132的组合是不行的 后来发现这是一道考察并查集的题目 QAQ 怒贴代码: #include < ...

  2. KVM的虚拟化研究及应用

    引言 虚拟化技术是IBM在20世纪70年代首先应用在IBM/370大型机上,这项技术极大地提高了大型机资源利用率.随着软硬件技术的迅速发展,这项属于大型机及专利的技术开始在普通X86计算机上应用并成为 ...

  3. objective-C 初识

    objective-C objective-c 是c语言的改进版 一.方法的定义: 格式: -/+(返回值类型)方法名:(参数类型) 参数名 [方法名] : (参数类型) 参数名......... 例 ...

  4. Python笔记之基本的语法

    1 变量和赋值 Python是动态类型语言,不须要预先声明变量的类型.变量的类型在赋值的那一刻被初始化. Python变量名是大写和小写敏感的,即"cAsE"与"CaSe ...

  5. cocos2d-x游戏开发系列教程-中国象棋03-主界面

    前情回顾 上个博客说道我们象棋程序进入了欢迎界面,在欢迎界面下等待一秒进入主界面 进入主界面的关键代码如下: CCScene* pScene = CCMainMenu::scene();  创建sce ...

  6. 用CentOS,fedora等访问局域网中的Windows共享

    来到Linux世界中已有一段时间了,感觉上好像自己的电脑成了一个孤岛.周围的人都还是用Windows系统,能相互共享文件,我用Linux系统,别人的共享文件都还不知道怎么访问?通过网上查资料学习,现在 ...

  7. ARM相关知识

    ARM7采用冯·诺依曼(Von-Neumann)结构,数据存储器和程序存储器重合在一起.    同时,此结构也被大多数计算机所采用. ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW ...

  8. H3C HCSE 官方培训胶片(中文) 下载

    H3C HCSE 官方培训胶片(中文) 点击文件名下载 HM-040 OSPF路由协议(V5.1).ppt HM-041 BGP协议原理及配置(V5.0).ppt HM-041 BGP协议原理及配置( ...

  9. CodeForces 228D. Zigzag(线段树暴力)

    D. Zigzag time limit per test 3 seconds memory limit per test 256 megabytes input standard input out ...

  10. CSS实现强制换行-------Day 78

    事实上最早的时候也考虑过这个问题,当时还在想须要判定文字的长度么,实在是傻到极点了,原来CSS中本来就有这个样式设置的.而今天正好看到了有这么一篇介绍.细致看了下,感觉还不错,这里也把实验的结果记录下 ...