Struts2图片文件上传,判断图片格式和图片大小
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图片文件上传,判断图片格式和图片大小的更多相关文章
- PHP图片文件上传类型限制扩展名限制大小限制与自动检测目录创建。
程序测试网址:http://blog.z88j.com/fileuploadexample/index.html 代码分为两部分: 一部分form表单: <!doctype html> & ...
- SpringMvc MultipartFile 图片文件上传
spring-servlet.xml <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipar ...
- springmvc图片文件上传接口
springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...
- .Net Core 图片文件上传下载
当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...
- jsp\struts1.2\struts2 中文件上传(转)
jsp\struts1.2\struts2 中文件上传 a.在jsp中简单利用Commons-fileupload组件实现 b.在struts1.2中实现c.在sturts2中实现现在把Code与大家 ...
- Struts2 多文件上传
Struts2多文件上传只需要将 单文件上传中的File变成File[] 即可,上篇文章:单文件上传 <form action="${pageContext.request.cont ...
- Struts2单文件上传原理及示例
一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里 ...
- 【SSH网上商城项目实战13】Struts2实现文件上传功能
转自:https://blog.csdn.net/eson_15/article/details/51366384 上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细 ...
- Struts2笔记--文件上传
Servlet 3.0规范的HttpServletRequest已经提供了方法来处理文件上传但这种上传需要在Servlet中完成.而Struts2则提供了更简单的封装. Struts2默认使用的是Ja ...
随机推荐
- ajax请求响应中用window.open打开新窗口会被浏览器拦截的解决方式
一.问题描述 ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是会被浏览器给拦截了,需要用户点下. 二.问题分析 浏览器之所以拦截新开窗口是因为该操作并 ...
- linux ubuntu安装jdk
Oracle对Jdk7与Jre7的关系的经典图解 Oracle has two products that implement Java Platform Standard Edition(Java ...
- 制作Linux(Fedora、Ubuntu、CentOS)优盘启动
随着嵌入式技术的快速发展,Linux快速发展过一段时间.虽然现在不是很热,但是linux在现实社会的使用还是很有用处.而光盘有有些落伍,不仅浪费而且不环保,所以质优价廉的优盘就脱颖而出.所以,用优盘制 ...
- 一步一步重写 CodeIgniter 框架 (10) —— 使用 CodeIgniter 类库(续)
上一节简单实现了 CI 的类库扩展模型,所以 _ci_load_class 和 _ci_init_class 写的不是很完备.根据上节课的分析,当 system/libraries 目录下存在 Ema ...
- matrix(dp)
matrix Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...
- eclipse、MyEclipse实现批量改动文件编码
在使用eclipse或MyEclipse编程时,常常遇到部分文件打开后出现乱码的情况(特别是在导入项目后) 1:右击项目选择properties->Resource>Other选择UTF- ...
- PHP - FTP上传文件类
/** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) * 时间:2006/5/9 * 作者:欣然随风 * QQ:276624915 */ class class_ftp { publi ...
- C++常变量
在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(constant variable).例如: const int a=3; //用const来声明 ...
- java --对象流与对象的序列化
对象流 ObjectInputStream ObjectOutputStream类分别是InputStream和OutputStream的子类,对象输出流使用writeObject(Object ob ...
- Web网页中内嵌Activex的Activex插件开发 .
转载自: http://blog.csdn.net/tttyd/article/details/5258096 源代码下载 http://files.cnblogs.com/tttyd/Activex ...