struts2的多个文件上传
成功效果图: 
上篇文章描述了单个文件的上传和配置,下面主要讲解下不同的地方:
index.jsp
<head>
<script type="text/javascript">
function check(){
var file = document.getElementsByName("file");
var filename = document.getElementsByName("fileName");
var filetype = document.getElementsByName("fileType");
for(var i =;i<file.length;i++){
if(file[i].value !=""){
var f = file[i].value ;
var type = f.substr(f.lastIndexOf(".")).toLowerCase();
var name = f.substr(f.lastIndexOf("\\"));
filename[i].value = name;
filetype[i].value = type;
}else{
alert("请选择文件");
return false;
}
}
return true;
}
</script>
</head> <body>
<p>stuts 多文件上传实例 </p>
${requestScope.typeError}
<form action="/uploadMore.do" method="post" enctype="multipart/form-data" onsubmit="return check();">
上传文件1:<input type="file" name="file" /><br>
<input type="hidden" name="fileType"/><br>
<input type="hidden" name="fileName"/><br>
上传文件2:<input type="file" name="file" /><br>
<input type="hidden" name="fileType"/><br>
<input type="hidden" name="fileName"/><br>
<input type="submit" value="提交"/>
</form>
</body>
struts.xml
<package name="uploadMoreFile" extends="struts-default">
<!--多文件上传 -->
<action name="uploadMore" class="com.nn.upload.UploadMoreAction" method="uploadMore">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/pjpeg</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
<param name="savePath">/upload</param> <!-- 保存的真实路径 -->
<result name="success">/successMore.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
UploadMoreAction.java
public class UploadMoreAction extends ActionSupport {
private File[] file;
private String[] fileName;
private String[] fileType;
public String uploadMore(){
String realpath = ServletActionContext.getServletContext().getRealPath("/upload");
if (this.file.length > ) {
String[] name = this.getFileName();
for(int i =;i<file.length;i++){
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
name[i] = df.format(new Date())+name[i].substring(); //获取文件名称,去掉\,并添加时间
File savefile = new File(new File(realpath), name[i]);
if (!savefile.getParentFile().exists())
savefile.getParentFile().mkdirs();
try {
FileUtils.copyFile(file[i], savefile);
} catch (IOException e) {
e.printStackTrace();
}
ActionContext.getContext().put("message", "文件上传成功!");
}
//this.setFileName(name);
}
return "success";
}
}
successMore.jsp
<body>
${requestScope.message}<br>
<s:iterator value="fileName" status="stuts">
文件名称: <s:property value="fileName[#stuts.index]"/><br>
文件为: <img src="${pageContext.request.contextPath}/<s:property value="'upload/'+fileName[#stuts.index]"/>"><br>
</s:iterator>
<s:debug></s:debug>
</body>
struts2的多个文件上传的更多相关文章
- Struts2框架下的文件上传文件类型、名称约定
Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor ...
- Struts2(十五)实现文件上传
一.导入包 需要将commons-fileupload和commons-io包和struts包一起导入 实现步骤: 在Jsp页面实现客户端选择上传文件 配置Struts.xml,拦截器会自动接收上传的 ...
- Struts2学习笔记(十一)——文件上传
1.单文件上传 单文件上传步骤: 1)创建上传jsp页面 文件上传的表单提交方式必须是POST方式,编码类型:enctype="multipart/form-data",默认是 a ...
- Struts2 使用Jquery+ajax 文件上传
话不多说 直接上代码 前台js: var formData = new FormData(); formData.append("file1",$("#file1&quo ...
- Struts2的简单的文件上传
1文件上传的流程: 第一步:首先得用表单标签的<s:file>在客户端接收上传的文件例如: <%@ page language="java" import=&qu ...
- 深入分析JavaWeb Item47 -- Struts2拦截器与文件上传下载
一.struts2中的拦截器(框架功能核心) 1.过滤器VS拦截器 过滤器VS拦截器功能是一回事. 过滤器是Servlet规范中的技术,能够对请求和响应进行过滤. 拦截器是Struts2框架中的技术. ...
- struts2解决动态多文件上传的问题(上传文件与数据库字段一一对应)(转)
struts2多文件上传我想只要会用struts2的朋友都不会陌生,但是怎么在action中根据用户上传的文 件把文件路径写到数据库中对应的字段上呢?ps:我的意思是这样,页面上有固定的5个上传文件的 ...
- 利用Struts2拦截器完成文件上传功能
Struts2的图片上传以及页面展示图片 在上次的CRUD基础上加上图片上传功能 (https://www.cnblogs.com/liuwenwu9527/p/11108611.html) 文件上传 ...
- struts2中简单的文件上传
2016-08-31 一. 文件上传 利用commons-fileupload-1.2.1.jar实现简单的上传文件,首先在页面上填写表单,记得加上enctype="multip ...
- [原创]Struts2奇葩环境任意文件上传工具(解决菜刀无法传文件或上传乱码等问题)
上面这问题问得好 1 不知道大家有没碰到有些Strus2站点 上传JSP后访问404 或者503 注意我说的是404或503不是403(要是403换个css/img等目录或许可以) 但 ...
随机推荐
- 基于GPU的优化处理
http://www.cnblogs.com/wuhanhoutao/archive/2007/11/10/955293.html 早期的三维场景绘制,显卡只是为屏幕上显示像素提供一个缓存,所有的图形 ...
- [Xcode 实际操作]八、网络与多线程-(11)使用同步Post方式查询IP地址信息
目录:[Swift]Xcode实际操作 本文将演示如何通过Post请求,同步获取IP地址信息. 一旦发送同步请求,程序将停止用户交互,直至服务器返回数据. 在项目导航区,打开视图控制器的代码文件[Vi ...
- 51 Nod 1640 天气晴朗的魔法( Kruskall )
#include <bits/stdc++.h> typedef long long LL; using namespace std; ; struct node{ LL u,v,w; n ...
- java数据结构----链表
1.链表:链表是继数组之后第二种使用的最广泛的通用存储结构,它克服了数组的许多弊端:无序数组的查找慢问题,有序数组的插入慢问题,数组定义时的定长问题.它也可取代数组,作为其他数据结构的基础. 2.引用 ...
- 命令行媒体处理工具 FFmpeg
FFmpeg 是一套在命令行界面运行的跨平台媒体处理工具,属于自由软件,常用来对视频音频和图片等媒体文件进行格式转换.分割和合并等,也可录屏录音. 开发语言:C官网:https://www.ffmpe ...
- 通过configmap更新k8s里的mysql配置文件
背景: 环境注意:在用rancher搭建的k8s里,mysql是起了一个pod,镜像是网上的mysql:5.7 开发人员提出了一个报错“查询时的ONLY_FULL_GROUP_BY错误”,让我改sql ...
- 排错:expected unqualified-id before string constant
一个低级但是不好定位的编译错误,常见的问题是: 1. 语句的 { 括号不匹配. 2. 缺少 : , 特别是类的定义或声明,枚举的定义. 3. 变量名或函数名使用了保留字.
- 07.Javascript——入门高阶函数
高阶函数英文叫Higher-order function..JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数 ...
- java emoji表情存储解决方案
1.问题产生情况 我遇到这个问题是做微信开发的时候有些有用的头像用了微信的emoji表情,然而我的mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了. 2. ...
- [转]Ioc容器Autofac
本文转自:http://www.cnblogs.com/hkncd/archive/2012/11/21/2780041.html Ioc容器Autofac系列(1)-- 初窥 前言 第一次接触A ...