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 ...
随机推荐
- 2014年百度之星程序设计大赛 资格赛第一题 (longlong)
解题思路: 只要看(A-V)*K 这个公式的更新值是否大于等于A ,大于的话继续循环,否则报错 注意一点,数据会爆int WA代码: #include<stdio.h> int main( ...
- 有什么很好的软件是用 Qt 编写的?
作者:尘中远链接:http://www.zhihu.com/question/19630324/answer/19365369来源:知乎 一些出名的例子如下:(wiki搬运) 3DSlicer, a ...
- Gradle构建Java Web应用:Servlet依赖与Tomcat插件(转)
Gradle的官方tutorial介绍了构建Java Web应用的基本方法.不过在使用Servlet做上传的时候会碰到问题.这里分享下如何通过Servlet上传文件,以及如何使用Gradle来构建相应 ...
- A2DP和AVRCP蓝牙音频传输协议的应用解释
A2DP全名是Advenced Audio Distribution Profile 蓝牙音频传输模型拹定.A2DP 规定了使用蓝牙非同步传输信道方式,传输高质量音乐文件数据的拹议堆栈软件和使用方法, ...
- Linux下tcpdump用法
根据使用者的定义对网络上的数据包进行截获的包分析工具.tcpdump将网络中传送的数据包的“头”完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供了and. or.not等逻 ...
- First_1
#region 练习题 1.4 (1) ///*求一个N阶方阵所有原素的和.(改进:二维数组的大小可以自己输入)*/ //Console.WriteLine("请输入i和j的值:" ...
- 在C#中使用C++编写的类1
转载地址:http://blog.csdn.net/starlee/article/details/2864588 现在在Windows下的应用程序开发,VS.Net占据了绝大多数的份额.因此很多以前 ...
- VS2013 Qt5 Mysql中文编码问题
Qt开始默认是utf-8,而VS2013默认程序编码为gb2312: 这样就会发现使用中文的时候乱码. 一般有二种解决方案: 1.在使用中文的时候,使用QTextCodec QTextCodec *g ...
- 基于Andoird 4.2.2的Account Manager源代码分析学习:AccountManagerService系统服务的添加
从启动说起 Android系统加载时,首先启动init进程,该进程会启动Zygote进程.Zygote进程执行/system/bin/app_process程序.app_process程序在执行中,通 ...
- linux下编译.so 和.a 可能出现的问题 ?
1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持 ...