* 单文件上传:
        * 在动作类action中声明相关属性:
            * 在动作类action中,要声明与页面中表单name属性同名的属性,同名的属性的类型是File类型;
            * 在动作类action中,要声明[同名的属性]ContentType,类型是String类型;
            * 在动作类action中,要声明[同名的属性]FileName,类型是String类型
            * 给所有属性提供get和set方法
        * 在业务方法中,处理文件上传:
            * 获取要上传文件的路径,保存的位置
            * 在目标文件夹内,创建一个与上传文件同名的文件
            * 通过FileUtils工具类提供copyFile()方法,将临时文件内容拷贝到目标文件夹下的那个同名的文件
        * 设置上传文件的总大小
            * 在struts.xml文件中,<constant name="struts.multipart.maxSize" value="2097152000"></constant>
        * 设置上传文件的大小、类型和扩展名:
            * 在自定义的配置文件中,在action标签下:
                <!-- 配置拦截器的参数,这里是文件上传拦截器 -->
                <interceptor-ref name="defaultStack">
                      <!--
                          配置文件上传拦截器的参数
                              * 与定义参数的顺序无关
                              * 允许的类型(allowedTypes)和允许的扩展名(allowedExtensions)必须保持一致
                       -->
                      <!--
                          * 配置上传文件的大小
                              * struts.xml文件中配置的是上传文件的总大小
                              * 这里配置的是上传文件的单个大小
                       -->
                      <param name="fileUpload.maximumSize">20971520</param>
                      <!-- 配置上传文件允许的类型,如果配置多个值的话,用","隔开 -->
                      <param name="fileUpload.allowedTypes">text/plain,application/msword</param>
                      <!-- 配置上传文件的扩展名,如果配置多个值的话,用","隔开 -->
                      <param name="fileUpload.allowedExtensions">.txt</param>
                </interceptor-ref>
             * 自定义上传文件的错误提示信息:
                 * 在动作类action同目录下,创建一个名为fileuploadmessage.properties资源文件(名为自定义)
                 * 改资源文件配置如下:
                    struts.messages.error.uploading=Error uploading: {0}
                    struts.messages.error.file.too.large=File too large: {0} "{1}" "{2}" {3}
                    struts.messages.error.content.type.not.allowed=Content-Type not allowed: {0} "{1}" "{2}" {3}
                    struts.messages.error.file.extension.not.allowed=File extension not allowed: {0} "{1}" "{2}" {3}      
    * 多文件上传:
        * 所有流程于配置都与单文件上传一致。
        * 需要注意的是:
            * 在页面中,虽然是多文件上传,但是页面中表单的name属性的值必须保持一致;
            * 在动作类action中声明的相关属性,类型改成数组;
            * 在业务方法中,相关处理流程改成单文件上传的循环。

Struts学习之文件上传的更多相关文章

  1. MVC&WebForm对照学习:文件上传(以图片为例)

    原文  http://www.tuicool.com/articles/myM7fe 主题 HTMLMVC模式Asp.net 博客园::首页::  ::  ::  ::管理 5 Posts :: 0 ...

  2. Struts学习总结-04 上传文件

    1. upload.jsp <%@ page language="java" import="java.util.*" pageEncoding=&quo ...

  3. Struts学习总结-02 上传文件

    Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的目录,以确保数据不丢失. ...

  4. Struts 框架 之 文件上传下载案例

    Struts 框架 文件上传 1. 先准备 Struts 环境 (我使用的是struts 2.3.4版本) 导jar包:

  5. JavaWeb学习总结——文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  6. Struts2学习总结——文件上传与下载

    Struts2文件上传与下载 1.1.1新建一个Maven项目(demo02) 在此添加Web构面以及 struts2 构面 1.2.1配置Maven依赖(pom.xml 文件) <?xml v ...

  7. Struts多个文件上传

    Struts2多个文件上传 10级学员 韩晓爽课堂笔记 多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传.都大同小异. 一 介绍 1. 在struts2文件上传的时候要先导入 ...

  8. javaWeb学习总结——文件上传、下载

    目录 1.文件上传环境搭建 2.文件上传代码实现 3.关于下载 @ 嘿,熊dei,你不得不知道在Web开发中,文件上传和下载功能是非常常用的功能,关于文件上传,浏览器上传[文件以流的形式传输]--&g ...

  9. Spring MVC学习笔记——文件上传

    1.实现文件上传首先需要导入Apache的包,commons-fileupload-1.2.2.jar和commons-io-2.1.jar 实现上传就在add.jsp文件中修改表单 enctype= ...

随机推荐

  1. Oracle 经常使用命令小结

    1.当前数据库中查看建表语句 select dbms_metadata.get_ddl('TABLE','表名') from dual; 2.当前数据库中查看视图创建Sql select text f ...

  2. jcenter那些事儿

    jcenter是一个server托管在bintray.com的maven仓库. in project's build.gradle file allprojects { repositories { ...

  3. 深入理解CSS3 Animation 帧动画(转)

    CSS3我在5年之前就有用了,包括公司项目都一直在很前沿的技术. 最近在写慕课网的七夕主题,用了大量的CSS3动画,但是真的沉淀下来仔细的去深入CSS3动画的各个属性发现还是很深的,这里就写下关于帧动 ...

  4. js 控制台的错误提示

    错误:程序运行过程中发生的异常状态 导致程序停止运行——异常 错误处理:当程序发生错误时,保证程序不退出的机制 发生错误时,程序会自动创建一个Error对象: Error对象中仅封装了错误的信息 js ...

  5. php curl详解用法[真的详解]

    目前为目最全的CURL中文说明了,学PHP的要好好掌握.有很多的参数.大部份都很有用.真正掌握了它和正 则,一定就是个采集高手了. 通用函数: function curl_file_get_conte ...

  6. 各种数据库的批量插入操作_Oracle

    最近工作中需要优化以前各种的Excel批量导入功能,目前将能优化的方面做个记录. 选用技术: 目前.Net可以访问Oracle常用的Dll,有三种: 微软自带的 System.Data.OracleC ...

  7. 在centos7下安装mysql5.7

    wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpmyum localinstall -y mysql57- ...

  8. [Drools]JAVA规则引擎 -- Drools

    Drools是一个基于Java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效. 本文所使用的de ...

  9. uestc 10 In Galgame We Trust

    题意:求最长的合法括号序列 解:栈+分类讨论 now表示已经算出的序列,且此序列与现在扫描的序列可能能够连接,tmp表示现在扫描到的序列长度 左括号入栈 右括号:1.栈空时:统计当前总长 并且将栈,n ...

  10. [Leetcode][Python]30: Substring with Concatenation of All Words

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 30: Substring with Concatenation of All ...