和单个文件上传配置都是一样的,只是在action中接受参数时候,接受的是数组,不再是单个的文件。

一,action的实现:

public class MutableFilesUpload extends ActionSupport {

	private static final long serialVersionUID = 1L;

	public File[] uploadObjects;
public String[] uploadObjectsFileName;
public String[] uploadObjectsContentType; public String moreInfo; public String upload() { System.out.println(moreInfo); // 1.拿到ServletContext
ServletContext servletContext = ServletActionContext
.getServletContext();
// 2.调用realPath方法,获取根据一个虚拟目录得到的真实目录
String realPath = servletContext.getRealPath("/files");
// 3.如果这个真实的目录不存在,需要创建
File file = new File(realPath);
if (!file.exists()) {
file.mkdirs();
}
// 4.把文件存过去
// 剪切:把临时文件剪切指定的位置,并且给他重命名。 注意:临时文件没有了
for (int i = 0; i < uploadObjects.length; i++) {
System.out.println("one file name: " + uploadObjectsFileName[i]);
uploadObjects[i].renameTo(new File(file, uploadObjectsFileName[i]));
} return SUCCESS;
} }

  

二,配置action

<action name="mutable_uploads" class="gy.upload.MutableFilesUpload" method="upload">

  <!-- 指定(限制)上传文件的类型,定义局部拦截器,修改默认拦截器的属性 "fileUpload.maximumSize" :限制上传最大的文件大小。
"fileUpload.allowedTypes":允许上传文件的类型。 "fileUpload.allowedExtensions":允许上传文件的可扩展文件类型。 -->
  <interceptor-ref name="defaultStack">
    <param name="fileUpload.maximumSize">500000000</param>
    <param name="fileUpload.allowedTypes">text/plain,application/vnd.ms-powerpoint</param>
    <param name="fileUpload.allowedExtensions">.txt,.ppt</param>
  </interceptor-ref>   <result>/success.html</result>
  <!-- 出现错误自动会返回input结果,进入结果视图 -->
  <result name="input">/fail.html</result>
</action>

三,表单的实现

<body>
<form action="mutable_uploads" method="post"
enctype="multipart/form-data">
文件:<br>
<input type="file" name="uploadObjects"><br>
<input type="file" name="uploadObjects"><br>
more info:
<input type="text" name="moreInfo"><br>
<input type="submit" value="提交"><br>
</form>
</body>

  

  

(27) java web的struts2框架的使用-基于表单的多文件上传的更多相关文章

  1. (25) java web的struts2框架的使用-基于表单的文件上传

    一,首先创建一个表单页面 <body> <form action="uploads" method="post" enctype=" ...

  2. 【ASP.NET Web API教程】5.3 发送HTML表单数据:文件上传与多部分MIME

    原文:[ASP.NET Web API教程]5.3 发送HTML表单数据:文件上传与多部分MIME 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面 ...

  3. 基于hi-nginx的web开发(python篇)——表单处理和文件上传

    hi-nginx会自动处理表单,所以,在hi.py框架里,要做的就是直接使用这些数据. 表单数据一般用GET和POST方法提交.hi-nginx会把这些数据解析出来,放在form成员变量里.对pyth ...

  4. (22) java web的struts2框架的使用-struts配置文件

    1,配置文件的引用 struts中配置文件可以有多个,每个模块的包里面都可以单独设立一个struts配置文件. 主的配置文件,放在“src”文件夹下,可以引入其他配置文件,引入方式: <!-- ...

  5. (21) java web的struts2框架的使用

    在javaweb开发过程中,如果只使用servlet,jdbc,jsp进行开发,也可以遵从MVC的模式,这时候,servlet相当于control层,属于负责处理业务逻辑的控制器,同时也需要对获取和返 ...

  6. java web学习总结(十三) -------------------使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  7. java web 学习十三(使用session防止表单重复提交)

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  8. (24) java web的struts2框架的使用-action参数自动封装与类型转换

    structs可以对参数进行自动封装,做法也很简单. 一,action参数自动封装: 1,可以直接在action类中,声明public的属性,接受参数. 2,属性也是是private,如果是priva ...

  9. (23) java web的struts2框架的使用-struts动态调用和通配符

    一,动态查找 1,配置允许动态调用 <!-- 允许动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocat ...

随机推荐

  1. 【CCF】行车路线 改编Dijkstra

    [AC] #include<iostream> #include<cstdio> #include<string> #include<cstring> ...

  2. 小Z的袜子(bzoj 2038)

    Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...

  3. Struts2标签-checkbox只读属性设置

    Struts2标签-checkbox只读属性设置 在struts2的checkbox标签中,为实现只读效果,一般使用readonly="true"是达不到效果的,但设置disabl ...

  4. laravel 数据库配置

    数据库配置文件为项目根目录下的config/database.php //默认数据库为mysql 'default' => env('DB_CONNECTION', 'mysql'), 'mys ...

  5. Linux上安装使用SSH

    參考博客:http://blog.csdn.net/xqhrs232/article/details/50960520 Ubuntu安装使用SSH ubuntu默认并没有安装ssh服务,如果通过ssh ...

  6. html--添加、删除滚动条

    1:若想给div添加滚动条: style="overflow-y:scroll";(添加纵向滚动条) style="overflow-x:scroll";(添加 ...

  7. T1245 最小的N个和 codevs

    http://codevs.cn/problem/1245/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 有两个长度 ...

  8. 洛谷——P2298 Mzc和男家丁的游戏

    P2298 Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来 ...

  9. python多线程实践小结

    参考:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944771.html #!/usr/bin/env python import sys ...

  10. [ZJOI 2018] 线图

    别想多了我怎么可能会正解呢2333,我只会30分暴力(好像现场拿30分已经不算少了2333,虽然我局的30分不是特别难想). 首先求k次转化的点数显然可以变成求k-1次转化之后的边数,所以我们可以先让 ...