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. access数据库

    //访问动态创建access数据库 string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.M ...

  2. W3C 、HTML 、CSS 发展介绍

    一.W3C W3C 指万维网联盟(World Wide Web Consortium),创建于1994年10月,由 Tim Berners-Lee (他是html的发明人)创建. W3C开始被创建的目 ...

  3. Scriptcase在线试用开发环境

    现在,你可以通过浏览器在线试用的方式,体验Scriptcase的高效快速开发方式. 只需要有上网环境就可以使用: 兼容几乎所有的浏览器(IE.Firefox.Chrome.Opera……): 客户端无 ...

  4. 基于visual Studio2013解决C语言竞赛题之0516人来人往

     题目

  5. 结构体中使用#define定义宏

    struct  hostent {   char    *h_name;        /* official name of host */   char    **h_aliases;    /* ...

  6. python下载文件(图片)源码,包含爬网内容(爬url),可保存cookie

    #coding=utf-8 ''' Created on 2013-7-17 @author: zinan.zhang ''' import re import time import httplib ...

  7. Java基础:多态(重载和重写)

    转载请注明出处:jiq•钦's technical Blog (1)域与静态方法 记住"仅仅有普通方法的调用是多态的". 而域和静态方法不是:对于域的訪问.在编译期间就已经进行解析 ...

  8. android圆形进度条ProgressBar颜色设置

    花样android Progressbar http://www.eoeandroid.com/thread-1081-1-1.html http://www.cnblogs.com/xirihanl ...

  9. JAVA编程相关:eclipse如何导入已有工程

    eclipse使用过程中,经常会遇到导入外部eclispe工程的情况,导入外部eclipse也就是将已有的eclipse工程导入到eclipse中,那么如何导入外部工程呢?下面为大家分享导入已有ecl ...

  10. javascript笔记整理(数组)

    数组是一个可以存储一组或是一系列相关数据的容器. 一.为什么要使用数组. a.为了解决大量相关数据的存储和使用的问题. b.模拟真是的世界. 二.如何创建数组 A.通过对象的方式来创建——var a= ...