在struts2中对多文件的上传、下载都提供了很好的支持,下面介绍一种方法实现多文件上传,下载和删除。具体代码如下:
第一步:创建上传文件Action
多文件文件上传和删除的FileUpArrayAction代码如下:
package cn.test.fileUp;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileUpArrayAction extends ActionSupport {
private File[] upload;
private String[] uploadContentType;
private String[] uploadFileName;
private String savePath;
private Date upTime;
private String test[];
private String deletePath;
public String[] getTest() {
return test;
}
public void setTest(String[] test) {
this.test = test;
}
private static void upLoad(File source,File target) throws IOException
{
InputStream inputStream=null;
OutputStream outPutStream=null;
try {
inputStream=new BufferedInputStream(new FileInputStream(source));
outPutStream=new BufferedOutputStream(new FileOutputStream(target));
byte[] buffer=new byte[1024];
int length=0;
while((length=inputStream.read(buffer))>0)
{
outPutStream.write(buffer, 0, length);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if (null!=inputStream)
{
inputStream.close();
}
if(null!=outPutStream)
{
outPutStream.close();
}
}
}
public String ArrayfileUpUI()
{
return "ArrayfileUpUI";
}
public String execute() throws IOException
{
for(int i=0;i<upload.length;i++)
{
String path1=ServletActionContext.getServletContext().getRealPath(savePath);
//System.out.println(path1);
File f=new File(path1);
if(!f.exists())
{
f.mkdirs();
}
String path=ServletActionContext.getServletContext().getRealPath(savePath)+"\\"+this.uploadFileName[i];
File target=new File(path);
upLoad(this.upload[i],target);
}
String path2=ServletActionContext.getServletContext().getRealPath(savePath);
File file=new File(path2);
test=file.list();
return "success";
}
public String delete() throws UnsupportedEncodingException
{
deletePath=new String(deletePath.getBytes("ISO8859-1"), "UTF8");
String path3=ServletActionContext.getServletContext().getRealPath(savePath)+"\\"+deletePath;
File f = new File(path3); // 输入要删除的文件位置
//System.out.println(path3);
if(f.exists())
f.delete();
return "deletesuccess";
}
public String FileList()
{
String path2=ServletActionContext.getServletContext().getRealPath(savePath);
File file=new File(path2);
test=file.list();
return "success";
}
public File[] getUpload() {
return upload;
}
public void setUpload(File[] upload) {
this.upload = upload;
}
public String[] getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String[] uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String[] getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public Date getUpTime() {
upTime=new Date();
return upTime;
}
public void setUpTime(Date upTime) {
this.upTime = upTime;
}
public String getDeletePath() {
return deletePath;
}
public void setDeletePath(String deletePath) {
this.deletePath = deletePath;
}
}
第二步:上传界面ArrayfileUpUI.jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:form action="Arrayfile_execute" namespace="/" enctype="multipart/form-data">
<s:file name="upload" label="文件1"></s:file>
<s:file name="upload" label="文件2"></s:file>
<s:file name="upload" label="文件3"></s:file>
<s:submit value="确定"></s:submit>
</s:form>
</html>
第三步:显示上传文件列表fsuccess.jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:iterator value="test" status="st" var="doc">
<tr>
<td><a href="Download.action?downPath=<s:property value="#doc"/>">
<s:property value="test[#st.getIndex()]"/>
</a></td>
<td><a href="delete.action?deletePath=<s:property value="#doc"/>" onclick="return confirm('确定要删除吗')">删除 </a></td>
<td><s:date name="upTime" format="yyyy-MM-dd HH:mm:ss"/></td>
</tr>
</s:iterator>
</html>
第四步:上传文件和删除文件所需配置的struts.xml文件内容
<action name="Arrayfile_*" class="cn.test.fileUp.FileUpArrayAction" method="{1}">
<param name="savePath">/upload</param>
<result name="ArrayfileUpUI">/WEB-INF/jsp/ArrayfileUpUI.jsp</result>
<result name="success">/WEB-INF/jsp/fsuccess.jsp</result>
</action>
<action name="delete" class="cn.test.fileUp.FileUpArrayAction" method="delete">
<param name="savePath">/upload</param>
<result name="deletesuccess" type="redirectAction">Arrayfile_FileList</result>
</action>
到这里可以完成多文件上传和文件删除功能
第五步:创建下载文件处理DownloadAction,代码如下:
package cn.test.fileUp;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class DownloadAction extends ActionSupport {
private String downPath;
public String getDownloadFileName() {
String downFileName=downPath;
try {
downFileName=new String(downPath.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return downFileName;
}
public String getDownPath() {
return downPath;
}
public void setDownPath(String downPath) {
this.downPath = downPath;
}
public InputStream getInputStream() throws UnsupportedEncodingException {
downPath=new String(downPath.getBytes("ISO8859-1"), "UTF8");
System.out.println("upload"+"/"+downPath);
return ServletActionContext.getServletContext().getResourceAsStream("upload"+"/"+downPath);
}
@Override
public String execute() throws Exception {
return super.execute();
}
}
第六步:下载所需配置的struts.xml文件
<action name="Download" class="cn.test.fileUp.DownloadAction">
<result type="stream">
<param name="contentType">application/msword,text/plain,application/vnd.ms-
powerpoint,application/vnd.ms-excel</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${DownloadFileName}"</param>
<param name="bufferSize">40960</param>
</result>
</action>
到这里多文件上传,下载和删除功能完成了。
相关推荐
struts2文件的上传与下载,包含超出指定文件大小之后的提示。更多详细内容,请参考博客:http://blog.csdn.net/qq_20889581/article/details/52838848
12.2.1 下载Struts 2.0开发包 216 12.2.2 创建Struts 2.0项目 216 12.2.3 配置Struts 2.0项目 217 12.2.4 创建Struts 2.0的Action类 218 12.2.5 Struts 2.0中的国际化编程 221 12.2.6 创建基于POJO的Action 223 12.3...
5. 文件管理:提供文件的上传、下载和删除功能,支持多种文件格式,实现文件的权限控制。 6. 系统设置:提供系统的基本设置,如网站名称、域名、备案号等,实现系统的日志管理和数据库备份恢复功能。 此外,该项目...
基于Struts+Spring+Hibernate+MySQL+Tomcat的... (9) 文件管理模块 本模块主要是对系统注册用户所上传文件的管理,可以查看所上传文件的相关信息,并且可以下载,而对所上传文件的删除则只有系统管理员才有权限。
开发技术:Spring3.2,Struts2.3,Hibernate3,bootstrap样式,bootstrap脚本,jquery脚本,layer弹窗组件,ueditor富文本框,webuploader文件上传组件,echarts图表展示组件等技术; 二、项目说明 本系统实现了...
轻量级的Guice2.0代替了Spring,速度更快,项目体积更小,Hibernate3.2与JPA的结合使用代替了传统的配置文件,使Hibernate的开发更简单,本项目基本上是零配置开发,由于我只能上传小于15M的文件,故JAR被我删除了,...
- 上传文件(struts2实现上传) (2)联系人列表 (3)修改联系人 (4)级联删除(删除客户,把客户里面所有联系人也删除) 第三个 客户拜访管理模块 (1)新增客户拜访 (2)客户拜访列表 - 解决问题:...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...
实现文件上传到服务器,从服务器上下载,还有对文件的基本操作,删除,新建以及模糊查询等等。 通过实验我对文件的基本操作有了更进一步的了解,基本掌握了文件的基本操作。同时对js,jQuery以及ajax的一些主流前端...
struts2最新版本,内含APACHE官网下载struts核心jar包,附数据库文件,MyEclipse 7.0开发,使用struts2 iterator标签,绝对是初学SSH的绝佳范例,互联网上仅此一份,没有更全的 注:如果自己用tomcat重新部署,需...
8.ajax的文件上传 9.批量删除 10.token控制刷新提交 11.简单的excl报表 12.简单的download 13.简单的listener 说明:有志同道合之士,容忍下我的不入流的代码,看看我的实现上出在什么地方 开发环境:...
8. 文件管理:提供文件的上传、下载、分享和版本控制功能,支持多种文件格式,方便企业内部的文件交换和协作。 此外,项目还提供了丰富的报表和统计功能,帮助企业领导层进行数据分析和决策支持。同时,项目具有...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...
技术框架SSH2: Struts2 + Spring + Hibernate 主要功能: (1)学生信息管理模块:包括所有学生信息的查询(用分页列表显示)、查看某个学生的详细信息、删除某学生信息、修改某学生信息以及学生信息的录入等子功能 ...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...